Skip to content

Weekly

Weekly #206

Workflow file for this run

name: Weekly
on:
workflow_dispatch:
schedule:
- cron: '0 10 * * 1' # Mon 10.00 UTC
env:
CTEST_OUTPUT_ON_FAILURE: 1
permissions:
contents: read
jobs:
clang:
name: Clang ${{ matrix.clang-version }}
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
clang-version: [5, 7, 9, 11, 13, 15, 17, 19, 21]
steps:
- name: Setup Clang
uses: aminya/setup-cpp@a276e6e3d1db9160db5edc458e99a30d3b109949 # v1.7.1
with:
llvm: ${{ matrix.clang-version }}
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Build and run tests
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
clang-32bit:
name: Clang 32bit
runs-on: ubuntu-24.04
steps:
- name: Prepare
run: |
sudo apt update
sudo apt install gcc-multilib g++-multilib
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Build and run tests
env:
CC: clang
CXX: clang++
run: |
scripts/initbuild.sh make-32bit
scripts/test.sh
gcc-old:
name: GCC 4.4
runs-on: ubuntu-24.04
steps:
- name: Setup GCC
run: |
wget http://launchpadlibrarian.net/336269522/libmpfr4_3.1.6-1_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-4.4/gcc-4.4-base_4.4.7-8ubuntu1_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-4.4/cpp-4.4_4.4.7-8ubuntu1_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-4.4/gcc-4.4_4.4.7-8ubuntu1_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-4.4/libstdc++6-4.4-dev_4.4.7-8ubuntu1_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-4.4/g++-4.4_4.4.7-8ubuntu1_amd64.deb
sudo dpkg -i ./libmpfr4_3.1.6-1_amd64.deb
sudo dpkg -i ./gcc-4.4-base_4.4.7-8ubuntu1_amd64.deb
sudo dpkg -i ./cpp-4.4_4.4.7-8ubuntu1_amd64.deb
sudo dpkg -i ./gcc-4.4_4.4.7-8ubuntu1_amd64.deb
sudo dpkg -i ./libstdc++6-4.4-dev_4.4.7-8ubuntu1_amd64.deb ./g++-4.4_4.4.7-8ubuntu1_amd64.deb
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Build and run tests
env:
CC: gcc-4.4
CXX: g++-4.4
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
gcc:
name: GCC ${{ matrix.gcc-version }}
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
gcc-version: [9, 11, 13, 14]
steps:
- name: Setup GCC
uses: aminya/setup-cpp@a276e6e3d1db9160db5edc458e99a30d3b109949 # v1.7.1
with:
gcc: ${{ matrix.gcc-version }}
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Build and run tests
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
gcc-15:
name: GCC 15
runs-on: ubuntu-24.04
container:
image: ubuntu:25.04 # Provides gcc-15
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Prepare
run: |
apt update && apt-get install -y gcc-15 g++-15 cmake
- name: Build and run tests
env:
CC: gcc-15
CXX: g++-15
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
gcc-32bit:
name: GCC 32bit
runs-on: ubuntu-24.04
steps:
- name: Prepare
run: |
sudo apt update
sudo apt install gcc-multilib g++-multilib
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Build and run tests
run: |
scripts/initbuild.sh make-32bit
scripts/test.sh
intel:
name: Intel ${{ matrix.compiler }}
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
compiler: [icc, icx]
steps:
- name: Prepare
run: |
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | \
gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | \
sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt update
sudo apt install intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.2.4
- name: Setup Intel oneAPI
run: |
source /opt/intel/oneapi/setvars.sh
printenv >> $GITHUB_ENV
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Build and run tests
env:
CC: ${{ matrix.compiler }}
CXX: ${{ matrix.compiler }}
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
macos-clang:
name: macOS Clang
runs-on: macos-14
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Build and run tests
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
macos-clang-x86:
name: macOS Clang (x86)
runs-on: macos-13 # Last macos x86 runner
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Build and run tests
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
macos-gcc:
name: macOS GCC ${{ matrix.gcc-version }}
runs-on: macos-14
strategy:
fail-fast: false
matrix:
gcc-version: [12, 14] # Github supports the 3 latest major versions.
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Prepare
run: |
# Install gcc if not already available.
brew list gcc@${{ matrix.gcc-version }} &>/dev/null || \
(brew update && brew install gcc@${{ matrix.gcc-version }})
- name: Build and run tests
env:
CC: gcc-${{ matrix.gcc-version }}
CXX: g++-${{ matrix.gcc-version }}
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
macos-gcc-x86:
name: macOS GCC ${{ matrix.gcc-version }} (x86)
runs-on: macos-13 # Last macos x86 runner
strategy:
fail-fast: false
matrix:
gcc-version: [12, 14] # Github supports the 3 latest major versions.
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Prepare
run: |
# Install gcc if not already available.
brew list gcc@${{ matrix.gcc-version }} &>/dev/null || \
(brew update && brew install gcc@${{ matrix.gcc-version }})
- name: Build and run tests
env:
CC: gcc-${{ matrix.gcc-version }}
CXX: g++-${{ matrix.gcc-version }}
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
windows:
name: Windows Visual Studio ${{ matrix.version }}
runs-on: windows-${{ matrix.version }}
strategy:
fail-fast: false
matrix:
version: [2022, 2025]
steps:
- uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Build and run tests
run: |
cmake .
msbuild FlatCC.sln /m /property:Configuration=Release
ctest -VV
debian:
name: Debian ${{ matrix.version }} "${{ matrix.name }}"
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
include:
- version: 12
name: Bookworm
- version: 11
name: Bullseye
container:
image: debian:${{ matrix.version }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Prepare
run: |
apt update && apt-get install -y build-essential cmake
- name: Build and run tests
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh
cmake-minimum-required:
name: CMake 3.16 (min. required)
runs-on: ubuntu-24.04
steps:
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@802fa1a2c4e212495c05bf94dba2704a92a472be # v2.0.2
with:
cmake-version: 3.16
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Build and run tests
run: |
cmake --version
scripts/initbuild.sh make-concurrent
scripts/test.sh
big-endian:
name: Big-endian (s390x via QEMU)
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: uraimo/run-on-arch-action@d94c13912ea685de38fccc1109385b83fd79427d # v3.0.1
with:
arch: s390x
distro: ubuntu24.04
install: |
apt-get update
apt-get install -y --no-install-recommends build-essential cmake
run: |
scripts/initbuild.sh make-concurrent
scripts/test.sh