diff options
Diffstat (limited to 'meson/.github/workflows/os_comp.yml')
-rw-r--r-- | meson/.github/workflows/os_comp.yml | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/meson/.github/workflows/os_comp.yml b/meson/.github/workflows/os_comp.yml new file mode 100644 index 000000000..fd716ce8d --- /dev/null +++ b/meson/.github/workflows/os_comp.yml @@ -0,0 +1,129 @@ +name: linux + +concurrency: + group: linux-${{ github.head_ref }} + cancel-in-progress: true + +on: + push: + branches: + - master + # Stable branches such as 0.56 or the eventual 1.0 + - '[0-9]+.[0-9]+' + paths: + - "mesonbuild/**" + - "test cases/**" + - ".github/workflows/images.yml" + - ".github/workflows/os_comp.yml" + - "run_unittests.py" + pull_request: + paths: + - "mesonbuild/**" + - "test cases/**" + - ".github/workflows/images.yml" + - ".github/workflows/os_comp.yml" + - "run_unittests.py" + +jobs: + arch: + name: ${{ matrix.cfg.name }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + cfg: + - { name: Arch Linux, id: arch } + - { name: CUDA (on Arch), id: cuda } + - { name: Fedora, id: fedora } + - { name: OpenSUSE, id: opensuse } + - { name: Ubuntu Bionic, id: bionic } + container: mesonbuild/${{ matrix.cfg.id }}:latest + env: + MESON_CI_JOBNAME: linux-${{ matrix.cfg.id }}-gcc + + steps: + - uses: actions/checkout@v2 + - name: Run tests + # All environment variables are stored inside the docker image in /ci/env_vars.sh + # They are defined in the `env` section in each image.json. CI_ARGS should be set + # via the `args` array ub the image.json + run: bash -c 'source /ci/env_vars.sh; cd $GITHUB_WORKSPACE; ./tools/run_with_cov.py ./run_tests.py $CI_ARGS' + - name: Upload coverage report + run: ./ci/upload_cov.sh "OS Comp [${{ matrix.cfg.name }}]" + + ubuntu-rolling: + name: 'Ubuntu Rolling' + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + cfg: + - CC: 'gcc' + CXX: 'g++' + - MESON_ARGS: '--unity=on -Ddefault_library=static' + RUN_TESTS_ARGS: '--no-unittests' + CC: 'gcc' + CXX: 'g++' + - MESON_ARGS: '-Ddefault_library=both' + RUN_TESTS_ARGS: '--no-unittests' + CC: 'gcc' + CXX: 'g++' + - CC: 'clang' + CXX: 'clang++' + - MESON_ARGS: '--unity=on' + RUN_TESTS_ARGS: '--no-unittests' + CC: 'clang' + CXX: 'clang++' + - RUN_TESTS_ARGS: '--cross ubuntu-armhf.json --cross linux-mingw-w64-64bit.json' + MESON_RSP_THRESHOLD: '0' + CC: 'gcc' + CXX: 'g++' + - RUN_TESTS_ARGS: '--cross ubuntu-armhf.json --cross linux-mingw-w64-64bit.json' + MESON_ARGS: '--unity=on' + CC: 'gcc' + CXX: 'g++' + + env: + MESON_CI_JOBNAME_UPDATE: linux-${{ github.job }}-${{ matrix.cfg.CC }} + + container: + image: mesonbuild/ubuntu-rolling + env: + MESON_RSP_THRESHOLD: ${{ matrix.cfg.MESON_RSP_THRESHOLD }} + MESON_ARGS: ${{ matrix.cfg.MESON_ARGS }} + RUN_TESTS_ARGS: ${{ matrix.cfg.RUN_TESTS_ARGS }} + CC: ${{ matrix.cfg.CC }} + CXX: ${{ matrix.cfg.CXX }} + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Run tests + shell: bash + run: | + export HOME=/root + + export CC=$CC + export CXX=$CXX + export OBJC=$CC + export OBJCXX=$CXX + export PATH=$(pwd)/tools:$PATH + if test "$MESON_RSP_THRESHOLD" != "" + then + export MESON_RSP_THRESHOLD=$MESON_RSP_THRESHOLD + fi + + source /ci/env_vars.sh + export MESON_CI_JOBNAME=$MESON_CI_JOBNAME_UPDATE + + update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix + update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix + update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix + update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix + + ./tools/run_with_cov.py ./run_tests.py $RUN_TESTS_ARGS -- $MESON_ARGS + + - name: Upload coverage report + run: ./ci/upload_cov.sh "Ubuntu [${{ matrix.cfg.CC }} ${{ matrix.cfg.RUN_TESTS_ARGS }} ${{ matrix.cfg.MESON_ARGS }}]" |