Skip to content

Normal Build and Check #280

Normal Build and Check

Normal Build and Check #280

Workflow file for this run

# .github/workflows/build.yaml
name: Normal Build and Check
on:
workflow_dispatch: NULL
jobs:
ubuntu-build:
name: Build and Check on Ubuntu ${{matrix.variant.os}} with ${{matrix.variant.label}}
strategy:
fail-fast: FALSE
matrix:
variant:
- { label: gcc9, os: '22.04', gcc: 'gcc-9', gxx: 'g++-9', pkgs: 'g++-9' }
- { label: gcc9, os: '24.04', gcc: 'gcc-9', gxx: 'g++-9', pkgs: 'g++-9' }
- { label: gcc10, os: '22.04', gcc: 'gcc-10', gxx: 'g++-10' }
- { label: gcc10, os: '24.04', gcc: 'gcc-10', gxx: 'g++-10', pkgs: 'g++-10' }
- { label: gcc11, os: '22.04', gcc: 'gcc', gxx: 'g++' }
- { label: gcc11, os: '24.04', gcc: 'gcc-11', gxx: 'g++-11', pkgs: 'g++-11' }
- { label: gcc12, os: '22.04', gcc: 'gcc-12', gxx: 'g++-12' }
- { label: gcc12, os: '24.04', gcc: 'gcc-12', gxx: 'g++-12' }
- { label: gcc13, os: '24.04', gcc: 'gcc', gxx: 'g++' }
- { label: gcc14, os: '24.04', gcc: 'gcc-14', gxx: 'g++-14' }
- { label: clang13, os: '22.04', gcc: 'clang-13', gxx: 'clang++-13', }
- { label: clang14, os: '22.04', gcc: 'clang', gxx: 'clang++' }
- { label: clang14, os: '24.04', gcc: 'clang-14', gxx: 'clang++-14', pkgs: 'clang-14' }
- { label: clang15, os: '22.04', gcc: 'clang-15', gxx: 'clang++-15' }
- { label: clang15, os: '24.04', gcc: 'clang-15', gxx: 'clang++-15', pkgs: 'clang-15' }
- { label: clang16, os: '24.04', gcc: 'clang-16', gxx: 'clang++-16' }
- { label: clang17, os: '24.04', gcc: 'clang-17', gxx: 'clang++-17' }
- { label: clang18, os: '24.04', gcc: 'clang', gxx: 'clang++' }
- { label: clang19, os: '24.04', gcc: 'clang-19', gxx: 'clang++-19', pkgs: 'clang-19' }
- { label: gcc9-32, os: '22.04', gcc: 'gcc-9', gxx: 'g++-9', pkgs: 'g++-9-multilib', i686sse2: TRUE }
- { label: gcc9-32, os: '24.04', gcc: 'gcc-9', gxx: 'g++-9', pkgs: 'g++-9-multilib', i686sse2: TRUE }
- { label: gcc10-32, os: '22.04', gcc: 'gcc-10', gxx: 'g++-10', pkgs: 'g++-10-multilib', i686sse2: TRUE }
- { label: gcc10-32, os: '24.04', gcc: 'gcc-10', gxx: 'g++-10', pkgs: 'g++-10-multilib', i686sse2: TRUE }
- { label: gcc11-32, os: '22.04', gcc: 'gcc', gxx: 'g++', pkgs: 'g++-multilib', i686sse2: TRUE }
- { label: gcc11-32, os: '24.04', gcc: 'gcc-11', gxx: 'g++-11', pkgs: 'g++-11-multilib', i686sse2: TRUE }
- { label: gcc12-32, os: '22.04', gcc: 'gcc-12', gxx: 'g++-12', pkgs: 'g++-12-multilib', i686sse2: TRUE }
- { label: gcc12-32, os: '24.04', gcc: 'gcc-12', gxx: 'g++-12', pkgs: 'g++-12-multilib', i686sse2: TRUE }
- { label: gcc13-32, os: '24.04', gcc: 'gcc', gxx: 'g++', pkgs: 'g++-multilib', i686sse2: TRUE }
- { label: gcc14-32, os: '24.04', gcc: 'gcc-14', gxx: 'g++-14', pkgs: 'g++-14-multilib', i686sse2: TRUE }
- { label: clang13-32, os: '22.04', gcc: 'clang-13', gxx: 'clang++-13', pkgs: 'g++-multilib', i686sse2: TRUE }
- { label: clang14-32, os: '22.04', gcc: 'clang', gxx: 'clang++', pkgs: 'g++-multilib', i686sse2: TRUE }
- { label: clang14-32, os: '24.04', gcc: 'clang-14', gxx: 'clang++-14', pkgs: 'g++-multilib clang-14', i686sse2: TRUE }
- { label: clang15-32, os: '22.04', gcc: 'clang-15', gxx: 'clang++-15', pkgs: 'g++-multilib', i686sse2: TRUE }
- { label: clang15-32, os: '24.04', gcc: 'clang-15', gxx: 'clang++-15', pkgs: 'g++-multilib clang-15', i686sse2: TRUE }
- { label: clang16-32, os: '24.04', gcc: 'clang-16', gxx: 'clang++-16', pkgs: 'g++-multilib', i686sse2: TRUE }
- { label: clang17-32, os: '24.04', gcc: 'clang-17', gxx: 'clang++-17', pkgs: 'g++-multilib', i686sse2: TRUE }
- { label: clang18-32, os: '24.04', gcc: 'clang', gxx: 'clang++', pkgs: 'g++-multilib', i686sse2: TRUE }
- { label: clang19-32, os: '24.04', gcc: 'clang-19', gxx: 'clang++-19', pkgs: 'g++-multilib clang-19', i686sse2: TRUE }
- { label: clang13-libcxx, os: '22.04', gcc: 'clang-13', gxx: 'clang++-13 -stdlib=libc++', pkgs: 'libc++{,abi}-13-dev' }
- { label: clang14-libcxx, os: '22.04', gcc: 'clang', gxx: 'clang++ -stdlib=libc++', pkgs: 'libc++{,abi}-dev' }
- { label: clang14-libcxx, os: '24.04', gcc: 'clang-14', gxx: 'clang++-14 -stdlib=libc++', pkgs: 'clang-14 libc++{,abi}-14-dev' }
- { label: clang15-libcxx, os: '22.04', gcc: 'clang-15', gxx: 'clang++-15 -stdlib=libc++', pkgs: 'libc++{,abi}-15-dev' }
- { label: clang15-libcxx, os: '24.04', gcc: 'clang-15', gxx: 'clang++-15 -stdlib=libc++', pkgs: 'clang-15 libc++{,abi}-15-dev' }
- { label: clang16-libcxx, os: '24.04', gcc: 'clang-16', gxx: 'clang++-16 -stdlib=libc++', pkgs: 'libc++{,abi}-16-dev' }
- { label: clang17-libcxx, os: '24.04', gcc: 'clang-17', gxx: 'clang++-17 -stdlib=libc++', pkgs: 'libc++{,abi}-17-dev' }
- { label: clang18-libcxx, os: '24.04', gcc: 'clang', gxx: 'clang++ -stdlib=libc++', pkgs: 'libc++{,abi}-dev' }
- { label: clang19-libcxx, os: '24.04', gcc: 'clang-19', gxx: 'clang++-19 -stdlib=libc++', pkgs: 'clang-19 libc++{,abi}-19-dev' }
- { label: gcc9, os: '22.04-arm', gcc: 'gcc-9', gxx: 'g++-9', pkgs: 'g++-9' }
- { label: gcc9, os: '24.04-arm', gcc: 'gcc-9', gxx: 'g++-9', pkgs: 'g++-9' }
- { label: gcc10, os: '22.04-arm', gcc: 'gcc-10', gxx: 'g++-10' }
- { label: gcc10, os: '24.04-arm', gcc: 'gcc-10', gxx: 'g++-10', pkgs: 'g++-10' }
- { label: gcc11, os: '22.04-arm', gcc: 'gcc', gxx: 'g++' }
- { label: gcc11, os: '24.04-arm', gcc: 'gcc-11', gxx: 'g++-11', pkgs: 'g++-11' }
- { label: gcc12, os: '22.04-arm', gcc: 'gcc-12', gxx: 'g++-12' }
- { label: gcc12, os: '24.04-arm', gcc: 'gcc-12', gxx: 'g++-12' }
- { label: gcc13, os: '24.04-arm', gcc: 'gcc', gxx: 'g++' }
- { label: gcc14, os: '24.04-arm', gcc: 'gcc-14', gxx: 'g++-14' }
- { label: clang13, os: '22.04-arm', gcc: 'clang-13', gxx: 'clang++-13', pkgs: 'clang-13' } # pkgs needed due to a bug in ARM image
- { label: clang14, os: '22.04-arm', gcc: 'clang', gxx: 'clang++' }
- { label: clang14, os: '24.04-arm', gcc: 'clang-14', gxx: 'clang++-14', pkgs: 'clang-14' }
- { label: clang15, os: '22.04-arm', gcc: 'clang-15', gxx: 'clang++-15' }
- { label: clang15, os: '24.04-arm', gcc: 'clang-15', gxx: 'clang++-15', pkgs: 'clang-15' }
- { label: clang16, os: '24.04-arm', gcc: 'clang-16', gxx: 'clang++-16' }
- { label: clang17, os: '24.04-arm', gcc: 'clang-17', gxx: 'clang++-17' }
- { label: clang18, os: '24.04-arm', gcc: 'clang', gxx: 'clang++' }
- { label: clang19, os: '24.04-arm', gcc: 'clang-19', gxx: 'clang++-19', pkgs: 'clang-19' }
- { label: clang13-libcxx, os: '22.04-arm', gcc: 'clang-13', gxx: 'clang++-13 -stdlib=libc++', pkgs: 'clang-13 libc++{,abi}-13-dev' } # *
- { label: clang14-libcxx, os: '22.04-arm', gcc: 'clang', gxx: 'clang++ -stdlib=libc++', pkgs: 'libc++{,abi}-dev' }
- { label: clang14-libcxx, os: '24.04-arm', gcc: 'clang-14', gxx: 'clang++-14 -stdlib=libc++', pkgs: 'clang-14 libc++{,abi}-14-dev' }
- { label: clang15-libcxx, os: '22.04-arm', gcc: 'clang-15', gxx: 'clang++-15 -stdlib=libc++', pkgs: 'libc++{,abi}-15-dev' }
- { label: clang15-libcxx, os: '24.04-arm', gcc: 'clang-15', gxx: 'clang++-15 -stdlib=libc++', pkgs: 'clang-15 libc++{,abi}-15-dev' }
- { label: clang16-libcxx, os: '24.04-arm', gcc: 'clang-16', gxx: 'clang++-16 -stdlib=libc++', pkgs: 'libc++{,abi}-16-dev' }
- { label: clang17-libcxx, os: '24.04-arm', gcc: 'clang-17', gxx: 'clang++-17 -stdlib=libc++', pkgs: 'libc++{,abi}-17-dev' }
- { label: clang18-libcxx, os: '24.04-arm', gcc: 'clang', gxx: 'clang++ -stdlib=libc++', pkgs: 'libc++{,abi}-dev' }
- { label: clang19-libcxx, os: '24.04-arm', gcc: 'clang-19', gxx: 'clang++-19 -stdlib=libc++', pkgs: 'clang-19 libc++{,abi}-19-dev' }
runs-on: ubuntu-${{matrix.variant.os}}
defaults:
run: { shell: bash }
steps:
- &minfo
name: Machine Information
run: |
exec 2>&1
set -x
lscpu; free -h; df -H .
- &sinfo
name: System Information
run: |
exec 2>&1
date; uname -a; uptime
set -x
systemd-detect-virt || :
cat /etc/os-release
ls -C /boot || :
- &cinfo
name: Context Information
run: |
exec 2>&1
tty || :; id; printf %s\\n SHELL="$SHELL" PATH="$PATH"
set -x
pwd
ps -e --sort ppid,pid -o ppid,pid,user:12,group:12,comm:24,rsz:11,vsz:11,thcount,bsdstart,state,tname
- name: Update Package DB
run: |
exec 2>&1
set -x
sudo sed -i /azure/d /etc/apt/apt-mirrors.txt
printf '%s ports.ubuntu.com\n' 91.189.91.{103,106} | sudo tee -a /etc/hosts >/dev/null
sudo apt-get -oDpkg::Use-Pty=0 update
- name: Install Build Dependencies
if: (matrix.variant.pkgs)
run: |
exec 2>&1
set -x
sudo apt-get -oDpkg::Use-Pty=0 install ${{matrix.variant.pkgs}}
- name: Install Valgrind
if: (!matrix.variant.i686sse2)
run: |
exec 2>&1
sudo apt-get -oDpkg::Use-Pty=0 install --no-install-recommends valgrind
- &tinfo
name: Build Tools Information
run: |
exec 2>&1
make --version; ${{matrix.variant.gcc}} --version
- &co
name: Checkout
uses: actions/checkout@v4
with: { ref: master }
- &make
name: Run Make (and Check)
run: |
exec 2>&1
set -x
make -j4 GCC='${{matrix.variant.gcc}}' GXX='${{matrix.variant.gxx}}' \
${{matrix.variant.i686sse2 && 'MARCH=-m32\ -msse2\ -mfpmath=sse' || ''}} \
run${{!matrix.variant.i686sse2 && '-valgrind' || ''}}
ubuntu-2510-build:
name: Build and Check on Ubuntu 25.10${{matrix.variant.arch}} with ${{matrix.variant.label}}
strategy:
fail-fast: FALSE
matrix:
variant:
- { label: gcc11, gcc: 'gcc-11', gxx: 'g++-11', pkgs: 'g++-11' }
- { label: gcc11-32, gcc: 'gcc-11', gxx: 'g++-11', pkgs: 'g++-11-multilib', i686sse2: TRUE }
- { label: gcc12, gcc: 'gcc-12', gxx: 'g++-12', pkgs: 'g++-12' }
- { label: gcc12-32, gcc: 'gcc-12', gxx: 'g++-12', pkgs: 'g++-12-multilib', i686sse2: TRUE }
- { label: gcc13, gcc: 'gcc-13', gxx: 'g++-13', pkgs: 'g++-13' }
- { label: gcc13-32, gcc: 'gcc-13', gxx: 'g++-13', pkgs: 'g++-13-multilib', i686sse2: TRUE }
- { label: gcc14, gcc: 'gcc', gxx: 'g++', pkgs: 'g++' }
- { label: gcc14-32, gcc: 'gcc', gxx: 'g++', pkgs: 'g++-multilib', i686sse2: TRUE }
- { label: gcc15, gcc: 'gcc-15', gxx: 'g++-15', pkgs: 'g++' }
- { label: gcc15-32, gcc: 'gcc-15', gxx: 'g++-15', pkgs: 'g++-multilib', i686sse2: TRUE }
- { label: clang14, gcc: 'clang-14', gxx: 'clang++-14', pkgs: 'clang-14' }
- { label: clang14-32, gcc: 'clang-14', gxx: 'clang++-14', pkgs: 'clang-14 g++-multilib', i686sse2: TRUE }
- { label: clang14-libcxx, gcc: 'clang-14', gxx: 'clang++-14 -stdlib=libc++', pkgs: 'clang-14 libc++{,abi}-14-dev' }
- { label: clang17, gcc: 'clang-17', gxx: 'clang++-17', pkgs: 'clang-17' }
- { label: clang17-32, gcc: 'clang-17', gxx: 'clang++-17', pkgs: 'clang-17 g++-multilib', i686sse2: TRUE }
- { label: clang17-libcxx, gcc: 'clang-17', gxx: 'clang++-17 -stdlib=libc++', pkgs: 'clang-17 libc++{,abi}-17-dev' }
- { label: clang18, gcc: 'clang-18', gxx: 'clang++-18', pkgs: 'clang-18' }
- { label: clang18-32, gcc: 'clang-18', gxx: 'clang++-18', pkgs: 'clang-18 g++-multilib', i686sse2: TRUE }
- { label: clang18-libcxx, gcc: 'clang-18', gxx: 'clang++-18 -stdlib=libc++', pkgs: 'clang-18 libc++{,abi}-18-dev' }
- { label: clang19, gcc: 'clang-19', gxx: 'clang++-19', pkgs: 'clang-19' }
- { label: clang19-32, gcc: 'clang-19', gxx: 'clang++-19', pkgs: 'clang-19 g++-multilib', i686sse2: TRUE }
- { label: clang19-libcxx, gcc: 'clang-19', gxx: 'clang++-19 -stdlib=libc++', pkgs: 'clang-19 libc++{,abi}-19-dev' }
- { label: clang20, gcc: 'clang', gxx: 'clang++', pkgs: 'clang' }
- { label: clang20-32, gcc: 'clang', gxx: 'clang++', pkgs: 'clang g++-multilib', i686sse2: TRUE }
- { label: clang20-libcxx, gcc: 'clang', gxx: 'clang++ -stdlib=libc++', pkgs: 'clang libc++{,abi}-dev' }
- { label: clang21, gcc: 'clang-21', gxx: 'clang++-21', pkgs: 'clang-21' }
- { label: clang21-32, gcc: 'clang-21', gxx: 'clang++-21', pkgs: 'clang-21 g++-multilib', i686sse2: TRUE }
- { label: clang21-libcxx, gcc: 'clang-21', gxx: 'clang++-21 -stdlib=libc++', pkgs: 'clang-21 libc++{,abi}-21-dev' }
- { label: gcc11, gcc: 'gcc-11', gxx: 'g++-11', pkgs: 'g++-11', arch: -arm }
- { label: gcc12, gcc: 'gcc-12', gxx: 'g++-12', pkgs: 'g++-12', arch: -arm }
- { label: gcc13, gcc: 'gcc-13', gxx: 'g++-13', pkgs: 'g++-13', arch: -arm }
- { label: gcc14, gcc: 'gcc', gxx: 'g++', pkgs: 'g++', arch: -arm }
- { label: gcc15, gcc: 'gcc-15', gxx: 'g++-15', pkgs: 'g++', arch: -arm }
- { label: clang14, gcc: 'clang-14', gxx: 'clang++-14', pkgs: 'clang-14', arch: -arm }
- { label: clang14-libcxx, gcc: 'clang-14', gxx: 'clang++-14 -stdlib=libc++', pkgs: 'clang-14 libc++{,abi}-14-dev', arch: -arm }
- { label: clang17, gcc: 'clang-17', gxx: 'clang++-17', pkgs: 'clang-17', arch: -arm }
- { label: clang17-libcxx, gcc: 'clang-17', gxx: 'clang++-17 -stdlib=libc++', pkgs: 'clang-17 libc++{,abi}-17-dev', arch: -arm }
- { label: clang18, gcc: 'clang-18', gxx: 'clang++-18', pkgs: 'clang-18', arch: -arm }
- { label: clang18-libcxx, gcc: 'clang-18', gxx: 'clang++-18 -stdlib=libc++', pkgs: 'clang-18 libc++{,abi}-18-dev', arch: -arm }
- { label: clang19, gcc: 'clang-19', gxx: 'clang++-19', pkgs: 'clang-19', arch: -arm }
- { label: clang19-libcxx, gcc: 'clang-19', gxx: 'clang++-19 -stdlib=libc++', pkgs: 'clang-19 libc++{,abi}-19-dev', arch: -arm }
- { label: clang20, gcc: 'clang', gxx: 'clang++', pkgs: 'clang', arch: -arm }
- { label: clang20-libcxx, gcc: 'clang', gxx: 'clang++ -stdlib=libc++', pkgs: 'clang libc++{,abi}-dev', arch: -arm }
- { label: clang21, gcc: 'clang-21', gxx: 'clang++-21', pkgs: 'clang-21', arch: -arm }
- { label: clang21-libcxx, gcc: 'clang-21', gxx: 'clang++-21 -stdlib=libc++', pkgs: 'clang-21 libc++{,abi}-21-dev', arch: -arm }
runs-on: ubuntu-24.04${{matrix.variant.arch}}
container: ubuntu:25.10
needs: [ delay ]
defaults:
run: { shell: bash }
steps:
- *minfo
- *sinfo
- *cinfo
- name: Baseline Setup
run: |
exec 2>&1
set -x
printf '%s ports.ubuntu.com\n' 91.189.91.{103,106} | tee -a /etc/hosts >/dev/null
apt-get -oDpkg::Use-Pty=0 update
apt-get -oDpkg::Use-Pty=0 -y install git
- name: Install Build Dependencies
run: |
exec 2>&1
set -x
apt-get -oDpkg::Use-Pty=0 -y install make ${{matrix.variant.pkgs}}
- name: Install Valgrind
if: (!matrix.variant.i686sse2)
run: |
exec 2>&1
apt-get -oDpkg::Use-Pty=0 -y install --no-install-recommends valgrind
- *tinfo
- *co
- *make
llvm-build:
name: Build and Check on Ubuntu ${{matrix.variant.os}} with ${{matrix.variant.label}}
strategy:
fail-fast: FALSE
matrix:
variant:
- { label: clang16, os: '22.04', gcc: 'clang-16', gxx: 'clang++-16', pkgs: 'clang-16' }
- { label: clang16-32, os: '22.04', gcc: 'clang-16', gxx: 'clang++-16', pkgs: 'clang-16 g++-multilib', i686sse2: TRUE }
- { label: clang16-libcxx, os: '22.04', gcc: 'clang-16', gxx: 'clang++-16 -stdlib=libc++', pkgs: 'clang-16 libc++{,abi}-16-dev' }
- { label: clang17, os: '22.04', gcc: 'clang-17', gxx: 'clang++-17', pkgs: 'clang-17' }
- { label: clang17-32, os: '22.04', gcc: 'clang-17', gxx: 'clang++-17', pkgs: 'clang-17 g++-multilib', i686sse2: TRUE }
- { label: clang17-libcxx, os: '22.04', gcc: 'clang-17', gxx: 'clang++-17 -stdlib=libc++', pkgs: 'clang-17 libc++{,abi}-17-dev' }
- { label: clang18, os: '22.04', gcc: 'clang-18', gxx: 'clang++-18', pkgs: 'clang-18' }
- { label: clang18-32, os: '22.04', gcc: 'clang-18', gxx: 'clang++-18', pkgs: 'clang-18 g++-multilib', i686sse2: TRUE }
- { label: clang18-libcxx, os: '22.04', gcc: 'clang-18', gxx: 'clang++-18 -stdlib=libc++', pkgs: 'clang-18 libc++{,abi}-18-dev' }
- { label: clang19, os: '22.04', gcc: 'clang-19', gxx: 'clang++-19', pkgs: 'clang-19' }
- { label: clang19-32, os: '22.04', gcc: 'clang-19', gxx: 'clang++-19', pkgs: 'clang-19 g++-multilib', i686sse2: TRUE }
- { label: clang19-libcxx, os: '22.04', gcc: 'clang-19', gxx: 'clang++-19 -stdlib=libc++', pkgs: 'clang-19 libc++{,abi}-19-dev' }
- { label: clang20, os: '22.04', gcc: 'clang-20', gxx: 'clang++-20', pkgs: 'clang-20' } # no -libcxx due to a bug in LLVM repo
- { label: clang20-32, os: '22.04', gcc: 'clang-20', gxx: 'clang++-20', pkgs: 'clang-20 g++-multilib', i686sse2: TRUE }
- { label: clang21, os: '22.04', gcc: 'clang-21', gxx: 'clang++-21', pkgs: 'clang-21' }
- { label: clang21-32, os: '22.04', gcc: 'clang-21', gxx: 'clang++-21', pkgs: 'clang-21 g++-multilib', i686sse2: TRUE }
- { label: clang21-libcxx, os: '22.04', gcc: 'clang-21', gxx: 'clang++-21 -stdlib=libc++', pkgs: 'clang-21 libc++{,abi}-21-dev' }
- { label: clang16, os: '22.04-arm', gcc: 'clang-16', gxx: 'clang++-16', pkgs: 'clang-16' }
- { label: clang16-libcxx, os: '22.04-arm', gcc: 'clang-16', gxx: 'clang++-16 -stdlib=libc++', pkgs: 'clang-16 libc++{,abi}-16-dev' }
- { label: clang17, os: '22.04-arm', gcc: 'clang-17', gxx: 'clang++-17', pkgs: 'clang-17' }
- { label: clang17-libcxx, os: '22.04-arm', gcc: 'clang-17', gxx: 'clang++-17 -stdlib=libc++', pkgs: 'clang-17 libc++{,abi}-17-dev' }
- { label: clang18, os: '22.04-arm', gcc: 'clang-18', gxx: 'clang++-18', pkgs: 'clang-18' }
- { label: clang18-libcxx, os: '22.04-arm', gcc: 'clang-18', gxx: 'clang++-18 -stdlib=libc++', pkgs: 'clang-18 libc++{,abi}-18-dev' }
- { label: clang19, os: '22.04-arm', gcc: 'clang-19', gxx: 'clang++-19', pkgs: 'clang-19' }
- { label: clang19-libcxx, os: '22.04-arm', gcc: 'clang-19', gxx: 'clang++-19 -stdlib=libc++', pkgs: 'clang-19 libc++{,abi}-19-dev' }
- { label: clang20, os: '22.04-arm', gcc: 'clang-20', gxx: 'clang++-20', pkgs: 'clang-20' } # *
- { label: clang21, os: '22.04-arm', gcc: 'clang-21', gxx: 'clang++-21', pkgs: 'clang-21' }
- { label: clang21-libcxx, os: '22.04-arm', gcc: 'clang-21', gxx: 'clang++-21 -stdlib=libc++', pkgs: 'clang-21 libc++{,abi}-21-dev' }
- { label: clang20, os: '24.04', gcc: 'clang-20', gxx: 'clang++-20', pkgs: 'clang-20' } # *
- { label: clang20-32, os: '24.04', gcc: 'clang-20', gxx: 'clang++-20', pkgs: 'clang-20 g++-multilib', i686sse2: TRUE }
- { label: clang21, os: '24.04', gcc: 'clang-21', gxx: 'clang++-21', pkgs: 'clang-21' } # *
- { label: clang21-32, os: '24.04', gcc: 'clang-21', gxx: 'clang++-21', pkgs: 'clang-21 g++-multilib', i686sse2: TRUE }
- { label: clang20, os: '24.04-arm', gcc: 'clang-20', gxx: 'clang++-20', pkgs: 'clang-20' } # *
- { label: clang21, os: '24.04-arm', gcc: 'clang-21', gxx: 'clang++-21', pkgs: 'clang-21' }
runs-on: ubuntu-${{matrix.variant.os}}
needs: [ delay ]
defaults:
run: { shell: bash }
steps:
- *minfo
- *sinfo
- *cinfo
- name: Update Package DB
if: (startsWith(matrix.variant.os, '22.04'))
run: |
exec 2>&1
set -x
sudo sed -i /azure/d /etc/apt/apt-mirrors.txt
printf '%s ports.ubuntu.com\n' 91.189.91.{103,106} | sudo tee -a /etc/hosts >/dev/null
sudo wget --no-show-progress -O/etc/apt/trusted.gpg.d/apt.llvm.org.asc https://apt.llvm.org/llvm-snapshot.gpg.key
sudo tee /etc/apt/sources.list.d/llvm.list <<'END' >/dev/null
deb http://apt.llvm.org/jammy llvm-toolchain-jammy-16 main
deb http://apt.llvm.org/jammy llvm-toolchain-jammy-17 main
deb http://apt.llvm.org/jammy llvm-toolchain-jammy-18 main
deb http://apt.llvm.org/jammy llvm-toolchain-jammy-19 main
deb http://apt.llvm.org/jammy llvm-toolchain-jammy-20 main
deb http://apt.llvm.org/jammy llvm-toolchain-jammy-21 main
END
sudo apt-get -oDpkg::Use-Pty=0 update
- name: Update Package DB
if: (startsWith(matrix.variant.os, '24.04'))
run: |
exec 2>&1
set -x
sudo sed -i /azure/d /etc/apt/apt-mirrors.txt
printf '%s ports.ubuntu.com\n' 91.189.91.{103,106} | sudo tee -a /etc/hosts >/dev/null
sudo wget --no-show-progress -O/etc/apt/trusted.gpg.d/apt.llvm.org.asc https://apt.llvm.org/llvm-snapshot.gpg.key
sudo tee /etc/apt/sources.list.d/llvm.list <<'END' >/dev/null
deb http://apt.llvm.org/noble llvm-toolchain-noble-20 main
deb http://apt.llvm.org/noble llvm-toolchain-noble-21 main
END
sudo apt-get -oDpkg::Use-Pty=0 update
- name: Install Build Dependencies
run: |
exec 2>&1
set -x
sudo apt-get -oDpkg::Use-Pty=0 install ${{matrix.variant.pkgs}}
- name: Install Valgrind
if: (!matrix.variant.i686sse2)
run: |
exec 2>&1
sudo apt-get -oDpkg::Use-Pty=0 install --no-install-recommends valgrind
- *tinfo
- *co
- *make
delay:
steps:
- run: sleep 5m
runs-on: ubuntu-slim