add architectures; be explicit about ccache #11
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
# Tests in this workflow file are slower or more expensive than build | |
# tests in quick.yaml. These tests improve build environment coverage, but | |
# most are unlikely to fail after quick.yaml tests succeed. Limiting these | |
# tests execution to staged commits optimizes CI responsiveness and | |
# costs while preserving decent quick.yaml problem detection probability. | |
# | |
# Anubis configuration must be kept in sync with the total number of | |
# tests executed for "auto" branch commits, including tests in other | |
# GitHub workflow file(s). | |
# | |
# move to slow.yaml after successful development | |
name: Development | |
on: | |
push: | |
branches: [ "github-actions-multiplatform" ] | |
concurrency: | |
# Cancel ongoing tests in case of push to staging branch. | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
linux-distros: | |
strategy: | |
matrix: | |
platform: | |
- arm64 | |
- arm/v7 | |
- riscv64 | |
# - mips64 | |
# - mips64le | |
# - ppc64le | |
- i386 | |
# - amd64 # native, do not use | |
os: | |
- centos-stream-9 # EOL 2027-05-31 | |
- debian-stable | |
- debian-testing | |
- debian-unstable | |
- fedora-40 | |
- fedora-41 | |
- fedora-rawhide | |
- gentoo | |
- opensuse-leap | |
- opensuse-tumbleweed | |
- ubuntu-focal | |
- ubuntu-jammy | |
- ubuntu-noble # EOL 2036-04 | |
- ubuntu-oracular # EOL 2025-07 | |
compiler: | |
# - { CC: gcc, CXX: g++ } | |
- { CC: clang, CXX: clang++ } | |
exclude: | |
- { platform: arm/v7, os: centos-stream-9 } | |
- { platform: i386, os: centos-stream-9 } | |
- { platform: riscv64, os: centos-stream-9 } | |
- { platform: riscv64, os: debian-stable } | |
- { platform: arm/v7, os: fedora-40 } | |
- { platform: i386, os: fedora-40 } | |
- { platform: riscv64, os: fedora-40 } | |
- { platform: arm/v7, os: fedora-41 } | |
- { platform: i386, os: fedora-41 } | |
- { platform: riscv64, os: fedora-41 } | |
- { platform: arm/v7, os: fedora-rawhide } | |
- { platform: i386, os: fedora-rawhide } | |
- { platform: riscv64, os: fedora-rawhide } | |
- { platform: arm/v7, os: gentoo } | |
- { platform: arm/v7, os: opensuse-leap } | |
- { platform: i386, os: opensuse-leap } | |
- { platform: riscv64, os: opensuse-leap } | |
- { platform: arm/v7, os: opensuse-tumbleweed } | |
- { platform: i386, os: opensuse-tumbleweed } | |
- { platform: riscv64, os: opensuse-tumbleweed } | |
- { platform: i386, os: ubuntu-focal } | |
- { platform: i386, os: ubuntu-jammy } | |
- { platform: arm/v7, os: ubuntu-noble } | |
- { platform: i386, os: ubuntu-noble } | |
- { platform: i386, os: ubuntu-oracular } | |
runs-on: ubuntu-22.04 | |
name: linux-distros(${{ matrix.platform }},${{ matrix.os }},${{ matrix.compiler.CC }}) | |
env: | |
CC: ccache ${{ matrix.compiler.CC }} | |
CXX: ccache ${{ matrix.compiler.CXX }} | |
steps: | |
- name: Install QEMU | |
run: sudo apt-get update && sudo apt-get install -y qemu-user-static | |
- name: Checkout Sources | |
uses: actions/checkout@v4 | |
- name: Setup ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
verbose: 2 # default 0 | |
key: ${{ matrix.platform }}-${{ matrix.os }}-${{ matrix.compiler.CC }} | |
create-symlink: true | |
- name: Run test-builds | |
id: test-builds | |
run: | | |
docker run --rm -v $HOME:$HOME -v $PWD:$PWD -w $PWD -u $UID \ | |
-e CC -e CXX -e CCACHE_SECONDARY_STORAGE \ | |
--platform ${{ matrix.platform }} \ | |
squidcache/buildfarm-${{ matrix.os }}:stable \ | |
./test-builds.sh --aggressively-use-config-cache --verbose layer-01-minimal | |
# TODO: test all layers | |
# TODO: remove verbose | |
- name: Publish build logs | |
if: success() || failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-logs-${{ matrix.platform }}-${{ matrix.os }}-${{ matrix.compiler.CC }} | |
path: btlayer-*.log |