Skip to content

add architectures; be explicit about ccache #11

add architectures; be explicit about ccache

add architectures; be explicit about ccache #11

Workflow file for this run

# 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