Normal Build and Check #275
This file contains hidden or 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
| # .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 tee -a /etc/hosts <<'END' | |
| 91.189.91.103 ports.ubuntu.com | |
| 91.189.91.106 ports.ubuntu.com | |
| END | |
| #cat /etc/apt/apt-mirrors.txt | |
| #cat /etc/apt/sources.list | |
| #sudo sed -i /azure/d /etc/apt/apt-mirrors.txt | |
| #sudo sed -i s!'http\:\/\/ports\.ubuntu\.com\/'!http://us.ports.ubuntu.com/! /etc/apt/sources.list | |
| 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 | |
| tee -a /etc/hosts <<'END' | |
| 91.189.91.103 ports.ubuntu.com | |
| 91.189.91.106 ports.ubuntu.com | |
| END | |
| 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 tee -a /etc/hosts <<'END' | |
| 91.189.91.103 ports.ubuntu.com | |
| 91.189.91.106 ports.ubuntu.com | |
| END | |
| #sudo sed -i /azure/d /etc/apt/apt-mirrors.txt | |
| 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 tee -a /etc/hosts <<'END' | |
| 91.189.91.103 ports.ubuntu.com | |
| 91.189.91.106 ports.ubuntu.com | |
| END | |
| #sudo sed -i /azure/d /etc/apt/apt-mirrors.txt | |
| 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 1 | |
| runs-on: ubuntu-latest |