name: ci on: [push, pull_request] jobs: build_linux: runs-on: ubuntu-latest defaults: run: shell: bash # Use container with docker installed container: image: catthehacker/ubuntu:act-latest strategy: fail-fast: true max-parallel: 4 matrix: config: - { name: g++15, image: fir.love.io:3005/amd64/gcc1511, cc: /usr/bin/gcc, cxx: /usr/bin/g++, build_type: Debug, cppstd: 17 } - { name: g++15, image: fir.love.io:3005/amd64/gcc1511, cc: /usr/bin/gcc, cxx: /usr/bin/g++, build_type: Release, cppstd: 17 } - { name: clang15, image: fir.love.io:3005/amd64/clang15, cc: /usr/bin/clang-15, cxx: /usr/bin/clang++-15, build_type: Debug, cppstd: 17 } - { name: clang17, image: fir.love.io:3005/amd64/clang17, cc: /usr/bin/clang-17, cxx: /usr/bin/clang++-17, build_type: Debug, cppstd: 17 } - { name: clang18, image: fir.love.io:3005/amd64/clang18, cc: /usr/bin/clang-18, cxx: /usr/bin/clang++-18, build_type: Debug, cppstd: 17 } - { name: clang19, image: fir.love.io:3005/amd64/clang19, cc: /usr/bin/clang-19, cxx: /usr/bin/clang++-19, build_type: Debug, cppstd: 17 } - { name: clang20, image: fir.love.io:3005/amd64/gcc1511, cc: /usr/bin/clang, cxx: /usr/bin/clang++, build_type: Debug, cppstd: 17 } - { name: clang20, image: fir.love.io:3005/amd64/gcc1511, cc: /usr/bin/clang, cxx: /usr/bin/clang++, build_type: Release, cppstd: 17 } - { name: asan, image: fir.love.io:3005/amd64/gcc1511, cc: /usr/bin/gcc, cxx: /usr/bin/g++, build_type: asan, cppstd: 17 } - { name: tsan, image: fir.love.io:3005/amd64/gcc1511, cc: /usr/bin/gcc, cxx: /usr/bin/g++, build_type: tsan, cppstd: 17 } - { name: ubsan, image: fir.love.io:3005/amd64/gcc1511, cc: /usr/bin/gcc, cxx: /usr/bin/g++, build_type: ubsan, cppstd: 17 } - { name: g++9.4.0, image: fir.love.io:3005/amd64/gcc940, cc: /opt/gcc940/bin/gcc, cxx: /opt/gcc940/bin/g++, build_type: Debug, cppstd: 17 } - { name: g++10.3.0, image: fir.love.io:3005/amd64/gcc1030, cc: /opt/gcc1030/bin/gcc, cxx: /opt/gcc1030/bin/g++, build_type: Debug, cppstd: 17 } - { name: g++11.3.0, image: fir.love.io:3005/amd64/gcc1130, cc: /opt/gcc1130/bin/gcc, cxx: /opt/gcc1130/bin/g++, build_type: Debug, cppstd: 17 } - { name: g++12.3.0, image: fir.love.io:3005/amd64/gcc1230, cc: /opt/gcc1230/bin/gcc, cxx: /opt/gcc1230/bin/g++, build_type: Debug, cppstd: 20 } - { name: g++13.3.0, image: fir.love.io:3005/amd64/gcc1330, cc: /opt/gcc1330/bin/gcc, cxx: /opt/gcc1330/bin/g++, build_type: Debug, cppstd: 20 } - { name: g++14.3.0, image: fir.love.io:3005/amd64/gcc1430, cc: /opt/gcc1430/bin/gcc, cxx: /opt/gcc1430/bin/g++, build_type: Debug, cppstd: 20 } name: "${{ matrix.config.name}} (C++${{ matrix.config.cppstd }}, ${{ matrix.config.build_type }})" steps: - uses: actions/checkout@v3 - name: Build uses: https://github.com/addnab/docker-run-action@v3 with: image: ${{ matrix.config.image }} options: --rm --volumes-from=${{ env.JOB_CONTAINER_NAME }} --pull always -v /home/vcpkg:/home/vcpkg run: | cd ${{ gitea.workspace }} export VCPKG_DEFAULT_BINARY_CACHE=/home/vcpkg ./build.sh -cc=${{ matrix.config.cc }} --cxx=${{ matrix.config.cxx }} --vcpkg --cmake="-DCMAKE_BUILD_TYPE=${{ matrix.config.cppstd }} -DCMAKE_CXX_STD=${{ matrix.config.cppstd }} -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON" results: runs-on: ubuntu-latest if: always() needs: build_linux steps: - name: Report failure if: failure() uses: tsickert/discord-webhook@v5.4.0 with: webhook-url: ${{ secrets.WEBHOOK_URL }} username: Gitea avatar-url: https://about.gitea.com/gitea-text.svg content: "Repo ${{ gitea.repository }} branch ${{ gitea.ref }} build :x:" - name: Report success if: success() uses: tsickert/discord-webhook@v5.4.0 with: webhook-url: ${{ secrets.WEBHOOK_URL }} username: Gitea avatar-url: https://about.gitea.com/gitea-text.svg content: "Repo ${{ gitea.repository }} branch ${{ gitea.ref }} build :white_check_mark:"