123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- name: linux
- concurrency:
- group: linux-${{ github.head_ref || github.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/**"
- - "unittests/**"
- - ".github/workflows/images.yml"
- - ".github/workflows/os_comp.yml"
- - "run_unittests.py"
- pull_request:
- paths:
- - "mesonbuild/**"
- - "test cases/**"
- - "unittests/**"
- - ".github/workflows/images.yml"
- - ".github/workflows/os_comp.yml"
- - "run_unittests.py"
- permissions:
- contents: read
- 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@v3
- - 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@v3
- - 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 }}]"
|