Skip to content

Commit

Permalink
Merge pull request #6 from OpenSEMBA/dev
Browse files Browse the repository at this point in the history
Adds CI checks in ubuntu with gnu, intel, and intelLLVM compilers
  • Loading branch information
salvaugres authored Jan 23, 2024
2 parents 42853bc + 889f326 commit aedb72a
Show file tree
Hide file tree
Showing 148 changed files with 23,547 additions and 469 deletions.
13 changes: 13 additions & 0 deletions .github/workflows/oneapi_cache_exclude_linux.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash

# SPDX-FileCopyrightText: 2020 Intel Corporation
#
# SPDX-License-Identifier: MIT

#shellcheck disable=SC2010
LATEST_VERSION=$(ls -1 /opt/intel/oneapi/compiler/ | grep -v latest | sort | tail -1)

sudo rm -rf /opt/intel/oneapi/compiler/"$LATEST_VERSION"/linux/compiler/lib/ia32_lin
sudo rm -rf /opt/intel/oneapi/compiler/"$LATEST_VERSION"/linux/bin/ia32
sudo rm -rf /opt/intel/oneapi/compiler/"$LATEST_VERSION"/linux/lib/emu
sudo rm -rf /opt/intel/oneapi/compiler/"$LATEST_VERSION"/linux/lib/oclfpga
10 changes: 10 additions & 0 deletions .github/workflows/oneapi_setup_apt_repo_linux.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash

# SPDX-FileCopyrightText: 2020 Intel Corporation
#
# SPDX-License-Identifier: MIT

wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/oneAPI.list" -o APT::Get::List-Cleanup="0"
40 changes: 40 additions & 0 deletions .github/workflows/ubuntu-gnu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: ubuntu-gnu

permissions:
actions: write

on:
push:
branches:
- main
pull_request:
branches:
- main

env:
FDTDTESTS_TOP_DIR: fdtd-tests

jobs:
builds-and-tests:
runs-on: ubuntu-latest

steps:

- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Setup ninja
uses: seanmiddleditch/gha-setup-ninja@master

- name: Build application
run: |
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
- name: Run json-parser tests
run: |
ctest --test-dir build/src_json_parser/test/ --output-on-failure
75 changes: 75 additions & 0 deletions .github/workflows/ubuntu-intel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: ubuntu-intel

env:
LINUX_CPP_COMPONENTS: intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-compiler-dpcpp-cpp
LINUX_FORTRAN_COMPONENTS: intel-oneapi-compiler-fortran
LINUX_MKL_COMPONENTS: "intel-oneapi-mkl intel-oneapi-mkl-devel"
LINUX_MPI_COMPONENTS: "intel-oneapi-mpi intel-oneapi-mpi-devel"
# https://github.com/oneapi-src/oneapi-ci/blob/master/.github/workflows/build_all.yml
CTEST_NO_TESTS_ACTION: error

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:

builds-and-tests:
runs-on: ubuntu-latest

steps:

- uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: cache install oneAPI
id: cache-install
uses: actions/cache@v3
with:
path: |
/opt/intel/oneapi
key: install-apt

- name: non-cache install oneAPI
if: steps.cache-install.outputs.cache-hit != 'true'
timeout-minutes: 10
run: |
sh -c .github/workflows/oneapi_setup_apt_repo_linux.sh
sudo apt install ${{ env.LINUX_CPP_COMPONENTS }} ${{ env.LINUX_FORTRAN_COMPONENTS }} ${{ env.LINUX_MKL_COMPONENTS }} ${{ env.LINUX_MPI_COMPONENTS }}
- name: Setup ninja
uses: seanmiddleditch/gha-setup-ninja@master

- name: Setup Intel oneAPI environment
run: |
LATEST_VERSION=$(ls -1 /opt/intel/oneapi/compiler/ | grep -v latest | sort | tail -1)
source /opt/intel/oneapi/compiler/"$LATEST_VERSION"/env/vars.sh
printenv >> $GITHUB_ENV
- name: print config log
if: ${{ failure() }}
run: cat build/CMakeFiles/CMakeConfigureLog.yaml

# - name: Setup upterm session
# uses: lhotari/action-upterm@v1

- name: CMake build
run: |
# export FC=ifort
# export CC=icc
# export CXX=icpc
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
- name: Run json-parser tests
run: |
ctest --test-dir build/src_json_parser/test/ --output-on-failure
- name: exclude unused files from cache
if: steps.cache-install.outputs.cache-hit != 'true'
run: sh -c .github/workflows/oneapi_cache_exclude_linux.sh
75 changes: 75 additions & 0 deletions .github/workflows/ubuntu-intelLLVM.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: ubuntu-intelLLVM

env:
LINUX_CPP_COMPONENTS: intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-compiler-dpcpp-cpp
LINUX_FORTRAN_COMPONENTS: intel-oneapi-compiler-fortran
LINUX_MKL_COMPONENTS: "intel-oneapi-mkl intel-oneapi-mkl-devel"
LINUX_MPI_COMPONENTS: "intel-oneapi-mpi intel-oneapi-mpi-devel"
# https://github.com/oneapi-src/oneapi-ci/blob/master/.github/workflows/build_all.yml
CTEST_NO_TESTS_ACTION: error

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:

builds-and-tests:
runs-on: ubuntu-latest

steps:

- uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: cache install oneAPI
id: cache-install
uses: actions/cache@v3
with:
path: |
/opt/intel/oneapi
key: install-apt

- name: non-cache install oneAPI
if: steps.cache-install.outputs.cache-hit != 'true'
timeout-minutes: 10
run: |
sh -c .github/workflows/oneapi_setup_apt_repo_linux.sh
sudo apt install ${{ env.LINUX_CPP_COMPONENTS }} ${{ env.LINUX_FORTRAN_COMPONENTS }} ${{ env.LINUX_MKL_COMPONENTS }} ${{ env.LINUX_MPI_COMPONENTS }}
- name: Setup Intel oneAPI environment
run: |
LATEST_VERSION=$(ls -1 /opt/intel/oneapi/compiler/ | grep -v latest | sort | tail -1)
source /opt/intel/oneapi/compiler/"$LATEST_VERSION"/env/vars.sh
printenv >> $GITHUB_ENV
- name: Setup ninja
uses: seanmiddleditch/gha-setup-ninja@master

- name: print config log
if: ${{ failure() }}
run: cat build/CMakeFiles/CMakeConfigureLog.yaml

# - name: Setup upterm session
# uses: lhotari/action-upterm@v1

- name: CMake build
run: |
export FC=ifx
export CC=icx
export CXX=icpx
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
- name: Run json-parser tests
run: |
ctest --test-dir build/src_json_parser/test/ --output-on-failure
- name: exclude unused files from cache
if: steps.cache-install.outputs.cache-hit != 'true'
run: sh -c .github/workflows/oneapi_cache_exclude_linux.sh
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ build/
build-rls/
build-dbg/
build-nv/

CMakeSettings.json
/CppProperties.json

Expand Down
19 changes: 15 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,8 +1,19 @@
[submodule "src_json_parser/json-fortran"]
path = src_json_parser/external/json-fortran
[submodule "external/json-fortran"]
path = external/json-fortran
url = [email protected]:lmdiazangulo/json-fortran.git
ignore = dirty
[submodule "src_json_parser/external/fhash"]
path = src_json_parser/external/fhash

[submodule "external/fhash"]
path = external/fhash
url = [email protected]:opensemba/fhash.git
ignore = dirty

[submodule "external/lapack"]
path = external/lapack
url = [email protected]:Reference-LAPACK/lapack.git
ignore = dirty

[submodule "external/ngspice"]
path = external/ngspice
url = [email protected]:opensemba/ngspice
ignore = dirty
Loading

0 comments on commit aedb72a

Please sign in to comment.