aboutsummaryrefslogtreecommitdiffstats
path: root/meson/.github/workflows/os_comp.yml
diff options
context:
space:
mode:
Diffstat (limited to 'meson/.github/workflows/os_comp.yml')
-rw-r--r--meson/.github/workflows/os_comp.yml129
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 }}]"