Skip to content

Merge pull request #127 from jan-provaznik/fix-binary-function #238

Merge pull request #127 from jan-provaznik/fix-binary-function

Merge pull request #127 from jan-provaznik/fix-binary-function #238

Workflow file for this run

# All actions have a name that will be displayed in the "Actions" page in GitHub.
name: CI
# Controls when the action will run.
on:
push:
branches: [master, develop]
pull_request:
types: [opened, synchronize, reopened]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "nomad"
nomad:
# The type of runner that the job will run on
name: ${{ matrix.config.name }} -- ${{ matrix.config.cc }} | ${{ matrix.config.cxx }}
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- {
name: "Windows--MSVC", artifact: "Windows-MSVC.tar.xz",
os: windows-latest, compiler: msvc,
build_type: "Release", cc: "cl", cxx: "cl",
environment_script: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat"
}
- {
name: "Windows--MinGW", artifact: "Windows-MinGW.tar.xz",
os: windows-latest, compiler: gnu,
build_type: "Release", cc: "gcc", cxx: "g++"
}
- {
name: "Ubuntu", artifact: "Linux.tar.xz",
os: ubuntu-latest, compiler: gnu,
build_type: "Release", cc: "gcc", cxx: "g++"
}
- {
name: "Ubuntu", artifact: "Linux.tar.xz",
os: ubuntu-latest, compiler: intel,
build_type: "Release", cc: "icc", cxx: "icpc"
}
- {
name: "Ubuntu", artifact: "Linux.tar.xz",
os: ubuntu-latest, compiler: intel-llvm,
build_type: "Release", cc: "icx", cxx: "icpx"
}
- {
name: "MacOS", artifact: "macOS.tar.xz",
os: macos-latest, compiler: clang,
build_type: "Release", cc: "clang", cxx: "clang++"
}
- {
name: "MacOS", artifact: "macOS.tar.xz",
os: macos-latest, compiler: gnu,
build_type: "Release", cc: "gcc", cxx: "g++"
}
- {
name: "MacOS", artifact: "macOS.tar.xz",
os: macos-latest, compiler: intel,
build_type: "Release", cc: "icc", cxx: "icpc"
}
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
# Usually this is always needed
- uses: actions/checkout@v3
- name: Install dependencies on Windows
if: startsWith(matrix.config.name, 'Windows')
run: |
choco install cmake
cmake --version
- name: Install dependencies on Ubuntu
if: startsWith(matrix.config.name, 'Ubuntu')
run: |
sudo apt-get update
sudo apt-get install cmake
cmake --version
- name: Install dependencies on MacOS
if: startsWith(matrix.config.name, 'MacOS')
run: |
brew install cmake
cmake --version
- name: Install GNU C and C++ compilers
if: matrix.config.compiler == 'gnu'
uses: awvwgk/setup-fortran@main
with:
compiler: gcc
version: 12
- name: Install classic Intel C and C++ compilers
if: matrix.config.compiler == 'intel'
uses: awvwgk/setup-fortran@main
with:
compiler: intel-classic
version: 2021.9
- name: Install nextgen Intel C and C++ compilers
if: matrix.config.compiler == 'intel-llvm'
uses: awvwgk/setup-fortran@main
with:
compiler: intel
version: 2023.1
- name: Configure
shell: bash
run: |
mkdir instdir
mkdir build
cd build
if [[ "${{matrix.config.compiler}}" == "intel" ]]; then
cmake \
-DCMAKE_C_COMPILER=${{matrix.config.cc}} \
-DCMAKE_CXX_COMPILER=${{matrix.config.cxx}} \
-DCMAKE_C_FLAGS=-diag-disable=10441 \
-DCMAKE_CXX_FLAGS=-diag-disable=10441 \
-DTEST_OPENMP=OFF \
-DBUILD_INTERFACE_C=ON \
-DCMAKE_INSTALL_PREFIX=../instdir \
..
elif [[ "${{matrix.config.name}}" == "Windows--MinGW" ]]; then
cmake -G "MinGW Makefiles" \
-DCMAKE_C_COMPILER=${{matrix.config.cc}} \
-DCMAKE_CXX_COMPILER=${{matrix.config.cxx}} \
-DTEST_OPENMP=OFF \
-DBUILD_INTERFACE_C=ON \
-DCMAKE_INSTALL_PREFIX=../instdir \
..
else
cmake \
-DCMAKE_C_COMPILER=${{matrix.config.cc}} \
-DCMAKE_CXX_COMPILER=${{matrix.config.cxx}} \
-DTEST_OPENMP=OFF \
-DBUILD_INTERFACE_C=ON \
-DCMAKE_INSTALL_PREFIX=../instdir \
..
fi
- name: Build
shell: bash
run: |
cmake --build build --config ${{matrix.config.build_type}}
- name: Install
shell: bash
run: |
cmake --install build --config ${{matrix.config.build_type}}
- name: Run tests
shell: bash
run: |
export PATH=`pwd`/build/bin:$PATH
echo $PATH
cd build
ctest -C ${{matrix.config.build_type}} --output-on-failure
- name: Prepare upload
shell: bash
run: |
mv README.txt instdir/.
mv LICENSE instdir/.
cd instdir
tar -cf NOMAD4.tar *
- name: Upload
uses: actions/upload-artifact@v3
with:
name: ${{matrix.config.name}}
path: instdir/NOMAD4.tar