[BUGFIX] Order of partial absorption was not respected #2407
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: [push, pull_request] | |
jobs: | |
build: | |
name: ${{ matrix.name }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
name: [ | |
ubuntu-doc, | |
ubuntu-clang-15-debug, | |
ubuntu-gcc-11, | |
ubuntu-gcc-12-debug, | |
ubuntu-clang-15-nofortran, | |
ubuntu-clang-16-nofortran, | |
macos-gcc-13, | |
macos-clang-16, | |
] | |
include: | |
- name: ubuntu-doc | |
os: ubuntu-22.04 | |
compiler: clang | |
version: "15" | |
doc: "yes" | |
arts: "no" | |
fortran: "no" | |
check: "no" | |
libcxx: "yes" | |
buildtype: "Release" | |
- name: ubuntu-clang-15-debug | |
os: ubuntu-22.04 | |
compiler: clang | |
version: "15" | |
doc: "no" | |
arts: "yes" | |
fortran: "yes" | |
fortran-version: "11" | |
check: "yes" | |
libcxx: "yes" | |
buildtype: "RelWithDebInfo" | |
- name: ubuntu-gcc-11 | |
os: ubuntu-22.04 | |
compiler: gcc | |
version: "11" | |
doc: "no" | |
arts: "yes" | |
fortran: "yes" | |
fortran-version: "11" | |
check: "yes" | |
libcxx: "no" | |
buildtype: "Release" | |
- name: ubuntu-gcc-12-debug | |
os: ubuntu-22.04 | |
compiler: gcc | |
version: "12" | |
doc: "no" | |
arts: "yes" | |
fortran: "yes" | |
fortran-version: "12" | |
check: "yes" | |
libcxx: "no" | |
buildtype: "RelWithDebInfo" | |
- name: ubuntu-clang-15-nofortran | |
os: ubuntu-22.04 | |
compiler: clang | |
version: "15" | |
doc: "no" | |
arts: "yes" | |
fortran: "no" | |
check: "yes" | |
libcxx: "yes" | |
buildtype: "Release" | |
- name: ubuntu-clang-16-nofortran | |
os: ubuntu-22.04 | |
compiler: clang | |
version: "16" | |
doc: "no" | |
arts: "yes" | |
fortran: "no" | |
check: "yes" | |
libcxx: "yes" | |
buildtype: "Release" | |
- name: macos-gcc-13 | |
os: macos-12 | |
compiler: gcc | |
version: "13" | |
doc: "no" | |
arts: "yes" | |
fortran: "yes" | |
fortran-version: "13" | |
check: "yes" | |
libcxx: "no" | |
buildtype: "Release" | |
- name: macos-clang-16 | |
os: macos-12 | |
compiler: clang | |
version: "16" | |
doc: "no" | |
arts: "yes" | |
fortran: "no" | |
check: "yes" | |
libcxx: "no" | |
buildtype: "Release" | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 10 | |
- uses: actions/setup-python@v4 | |
if: runner.os == 'macOS' | |
with: | |
python-version: '3.10' | |
- name: Setup (Linux) | |
if: runner.os == 'Linux' | |
run: | | |
if [ "${{ matrix.compiler }}" = "clang" ] && [ "${{ matrix.version }}" -ge "13" ]; then | |
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 15CF4D18AF4F7421 | |
sudo add-apt-repository "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-${{ matrix.version }} main" | |
fi | |
sudo apt-get update | |
if [ "${{ matrix.compiler }}" = "gcc" ]; then | |
sudo apt-get install -y g++-${{ matrix.version }} | |
echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV | |
echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV | |
fi | |
if [ "${{ matrix.fortran }}" = "yes" ]; then | |
sudo apt-get install -y gfortran-${{ matrix.fortran-version }} | |
echo "FC=gfortran-${{ matrix.fortran-version }}" >> $GITHUB_ENV | |
echo "USEFORTRAN=1" >> $GITHUB_ENV | |
else | |
echo "USEFORTRAN=0" >> $GITHUB_ENV | |
fi | |
if [ "${{ matrix.compiler }}" = "clang" ]; then | |
sudo apt-get install -y libunwind-dev clang++-${{ matrix.version }} | |
echo "CC=clang-${{ matrix.version }}" >> $GITHUB_ENV | |
echo "CXX=clang++-${{ matrix.version }}" >> $GITHUB_ENV | |
fi | |
if [ "${{ matrix.libcxx }}" = "yes" ]; then | |
sudo apt-get install -y libc++-${{ matrix.version }}-dev libc++abi-${{ matrix.version }}-dev | |
fi | |
sudo apt-get install -y python3-minimal python3-pip python3-setuptools zlib1g-dev libopenblas-dev libglew-dev libglfw3-dev libnetcdf-dev libmicrohttpd-dev | |
sudo pip3 install build docutils lark-parser matplotlib netCDF4 numpy pytest scipy xarray | |
if [ "${{ matrix.doc }}" = "yes" ]; then | |
sudo apt-get install -y texlive texlive-latex-extra doxygen | |
sudo pip3 install sphinx sphinx_rtd_theme sphinx-favicon | |
fi | |
- name: Setup (macOS) | |
if: runner.os == 'macOS' | |
run: | | |
pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | |
brew upgrade python | |
brew install libmicrohttpd | |
sudo pip3 install build docutils lark-parser matplotlib netCDF4 numpy pytest scipy xarray | |
if [ "${{ matrix.compiler }}" = "gcc" ]; then | |
brew install gcc@${{ matrix.version }} | |
echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV | |
echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV | |
elif [ "${{ matrix.compiler }}" = "clang" ]; then | |
brew install llvm@${{ matrix.version }} | |
echo "CC=/usr/local/opt/llvm@${{ matrix.version }}/bin/clang" >> $GITHUB_ENV | |
echo "CXX=/usr/local/opt/llvm@${{ matrix.version }}/bin/clang++" >> $GITHUB_ENV | |
if [ "${{ matrix.fortran }}" = "yes" ]; then | |
brew install gcc@${{ matrix.fortran-version }} | |
fi | |
else | |
exit 1 | |
fi | |
if [ "${{ matrix.fortran }}" = "yes" ]; then | |
echo "FC=gfortran-${{ matrix.fortran-version }}" >> $GITHUB_ENV | |
echo "USEFORTRAN=1" >> $GITHUB_ENV | |
else | |
echo "USEFORTRAN=0" >> $GITHUB_ENV | |
fi | |
brew install glew glfw netcdf | |
- name: Configure (Linux / macOS) | |
if: runner.os == 'Linux' || runner.os == 'macOS' | |
run: | | |
mkdir cmake-build | |
cd cmake-build | |
cmake -DCMAKE_BUILD_TYPE=${{ matrix.buildtype }} -DENABLE_PCH=1 -DENABLE_GUI=1 -DNUM_PYARTS_WSM=2 -DNUM_PYARTS_WSV=1 -DNUM_PYARTS_WSC=1 -DNUM_PYARTS_WSG=1 -DENABLE_FORTRAN=$USEFORTRAN -DENABLE_NETCDF=1 -DENABLE_DOCSERVER=1 -DENABLE_ARTS_LGPL=0 ${{ matrix.cmakeflags }} .. | |
- name: Build (Linux) | |
if: runner.os == 'Linux' && matrix.arts == 'yes' | |
run: | | |
cd cmake-build | |
if [[ ${{ matrix.buildtype }} == "Release" ]]; then | |
make -j2 -C src | |
else | |
make -j2 arts | |
make -j1 pyarts | |
make -j2 -C src | |
fi | |
- name: Build (macOS) | |
if: runner.os == 'macOS' && matrix.arts == 'yes' | |
run: | | |
cd cmake-build | |
make -j3 -C src | |
- name: Docs (Linux / macOS) | |
if: (runner.os == 'Linux' || runner.os == 'macOS') && matrix.doc == 'yes' | |
run: | | |
cd cmake-build | |
make -j2 -C doc | |
make -j2 pyarts_docs | |
tar -zcf doxygen.tar.gz doc/doxygen/html | |
tar -zcf sphinx.tar.gz python/doc/build | |
- name: Check (Linux / macOS) | |
if: (runner.os == 'Linux' || runner.os == 'macOS') && matrix.check == 'yes' | |
run: | | |
cd cmake-build | |
make check | |
- name: Python Wheel (Linux / macOS) | |
if: (runner.os == 'Linux' || runner.os == 'macOS') && matrix.check == 'yes' | |
run: | | |
cd cmake-build | |
make pyarts-package | |
- name: Check Controlfile Conversion (Linux / macOS) | |
if: matrix.check == 'yes' | |
run: | | |
cd cmake-build | |
make check-conversion | |
- uses: actions/upload-artifact@v4 | |
if: (runner.os == 'Linux' || runner.os == 'macOS') && matrix.doc == 'yes' | |
with: | |
name: docs-uguide | |
path: | | |
cmake-build/doc/uguide/arts_user.pdf | |
cmake-build/doc/uguide/arts_theory.pdf | |
cmake-build/doc/uguide/arts_developer.pdf | |
- uses: actions/upload-artifact@v4 | |
if: (runner.os == 'Linux' || runner.os == 'macOS') && matrix.doc == 'yes' | |
with: | |
name: docs-doxygen | |
path: | | |
cmake-build/doxygen.tar.gz | |
- uses: actions/upload-artifact@v4 | |
if: (runner.os == 'Linux' || runner.os == 'macOS') && matrix.doc == 'yes' | |
with: | |
name: docs-sphinx | |
path: | | |
cmake-build/sphinx.tar.gz |