Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ updates:
directory: /
schedule:
interval: monthly
cooldown:
default-days: 7
open-pull-requests-limit: 2
366 changes: 72 additions & 294 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,312 +2,90 @@ name: CI

on: [push, pull_request]

permissions: {}

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
whitespace-errors:
name: Check for whitespace errors
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
persist-credentials: false
- name: check
run: git diff-index --check --cached b1b622f691d40196815939e4736a5da71befd206

asan:
runs-on: ubuntu-22.04
env:
CC: gcc
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh --enable-fuzz --enable-asan

asan-disable-all:
runs-on: ubuntu-22.04
env:
CC: gcc
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh --enable-asan --disable-openmp --disable-simd --without-openssl

asan-disable-openmp:
runs-on: ubuntu-22.04
env:
CC: gcc
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh --enable-asan --disable-openmp

asan-without-openssl:
runs-on: ubuntu-22.04
env:
CC: gcc
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh --enable-asan --without-openssl

asan-disable-simd:
runs-on: ubuntu-latest
env:
CC: gcc
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh --enable-asan --disable-simd

asan-sse2:
runs-on: ubuntu-latest
env:
CC: gcc
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh --enable-asan --enable-simd=sse2

asan-avx:
runs-on: ubuntu-latest
env:
CC: gcc
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh --enable-asan --enable-simd=avx

asan-avx2:
runs-on: ubuntu-latest
env:
CC: gcc
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh --enable-asan --enable-simd=avx2

gcc14-x86-without-openssl:
runs-on: ubuntu-24.04
env:
CC: gcc-14
TARGET: x86
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh --without-openssl

gcc14-x86-disable-all:
runs-on: ubuntu-24.04
env:
CC: gcc-14
TARGET: x86
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh --disable-openmp --disable-simd --without-openssl

gcc14-x86_64:
runs-on: ubuntu-24.04
env:
CC: gcc-14
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh

gcc13-x86_64:
runs-on: ubuntu-latest
env:
CC: gcc-13
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh

gcc12-x86_64:
runs-on: ubuntu-latest
env:
CC: gcc-12
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh

gcc11-x86_64:
runs-on: ubuntu-latest
env:
CC: gcc-11
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh

gcc10-x86_64:
runs-on: ubuntu-latest
env:
CC: gcc-10
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh

gcc9-x86_64:
runs-on: ubuntu-latest
env:
CC: gcc-9
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh

clang18-x86_64:
runs-on: ubuntu-24.04
env:
CC: clang-18
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh

clang17-x86_64:
runs-on: ubuntu-24.04
env:
CC: clang-17
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh

clang16-x86_64:
runs-on: ubuntu-24.04
env:
CC: clang-16
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh

clang15-x86_64:
runs-on: ubuntu-latest
env:
CC: clang-15
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh

clang14-x86_64:
runs-on: ubuntu-latest
env:
CC: clang-14
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh

clang13-x86_64:
runs-on: ubuntu-22.04
env:
CC: clang-13
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh
build-check:
runs-on: ${{ matrix.runs_on }}
strategy:
fail-fast: false
matrix:
include:
# ASAN variants (gcc, x86_64)
- { cc: gcc, runs_on: ubuntu-22.04, target: x86_64, variant: asan }
- { cc: gcc, runs_on: ubuntu-22.04, target: x86_64, variant: asan-disable-all }
- { cc: gcc, runs_on: ubuntu-22.04, target: x86_64, variant: asan-disable-openmp }
- { cc: gcc, runs_on: ubuntu-22.04, target: x86_64, variant: asan-without-openssl }
- { cc: gcc, runs_on: ubuntu-latest, target: x86_64, variant: asan-disable-simd }
- { cc: gcc, runs_on: ubuntu-latest, target: x86_64, variant: asan-sse2 }
- { cc: gcc, runs_on: ubuntu-latest, target: x86_64, variant: asan-avx }
- { cc: gcc, runs_on: ubuntu-latest, target: x86_64, variant: asan-avx2 }
# GCC 9–14 (ubuntu-latest)
- { cc: gcc-14, runs_on: ubuntu-latest, target: x86_64, variant: base }
- { cc: gcc-14, runs_on: ubuntu-latest, target: x86, variant: without-openssl }
- { cc: gcc-14, runs_on: ubuntu-latest, target: x86, variant: disable-all }
- { cc: gcc-13, runs_on: ubuntu-latest, target: x86_64, variant: base }
- { cc: gcc-12, runs_on: ubuntu-latest, target: x86_64, variant: base }
- { cc: gcc-11, runs_on: ubuntu-latest, target: x86_64, variant: base }
- { cc: gcc-10, runs_on: ubuntu-latest, target: x86_64, variant: base }
- { cc: gcc-9, runs_on: ubuntu-latest, target: x86_64, variant: base }
# Clang 14–19 (ubuntu-latest)
- { cc: clang-19, runs_on: ubuntu-latest, target: x86_64, variant: base }
- { cc: clang-18, runs_on: ubuntu-latest, target: x86_64, variant: base }
- { cc: clang-17, runs_on: ubuntu-latest, target: x86_64, variant: base }
- { cc: clang-16, runs_on: ubuntu-latest, target: x86_64, variant: base }
- { cc: clang-15, runs_on: ubuntu-latest, target: x86_64, variant: base }
- { cc: clang-14, runs_on: ubuntu-latest, target: x86_64, variant: base }
# Clang 11–13 (ubuntu-22.04)
- { cc: clang-13, runs_on: ubuntu-22.04, target: x86_64, variant: base }
- { cc: clang-12, runs_on: ubuntu-22.04, target: x86_64, variant: base }
- { cc: clang-11, runs_on: ubuntu-22.04, target: x86_64, variant: base }
name: Build ${{ matrix.cc }}-${{ matrix.target }}-${{ matrix.variant }}
env:
CC: ${{ matrix.cc }}
TARGET: ${{ matrix.target }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

clang12-x86_64:
runs-on: ubuntu-22.04
env:
CC: clang-12
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh
- name: Set build arguments
env:
VARIANT: ${{ matrix.variant }}
run: |
case "$VARIANT" in
base) BUILD_ARGS="" ;;
without-openssl) BUILD_ARGS="--without-openssl" ;;
disable-all) BUILD_ARGS="--disable-openmp --disable-simd --without-openssl" ;;
asan) BUILD_ARGS="--enable-fuzz --enable-asan" ;;
asan-disable-all) BUILD_ARGS="--enable-asan --disable-openmp --disable-simd --without-openssl" ;;
asan-disable-openmp) BUILD_ARGS="--enable-asan --disable-openmp" ;;
asan-without-openssl) BUILD_ARGS="--enable-asan --without-openssl" ;;
asan-disable-simd) BUILD_ARGS="--enable-asan --disable-simd" ;;
asan-sse2) BUILD_ARGS="--enable-asan --enable-simd=sse2" ;;
asan-avx) BUILD_ARGS="--enable-asan --enable-simd=avx" ;;
asan-avx2) BUILD_ARGS="--enable-asan --enable-simd=avx2" ;;
*) echo "Unknown variant: $VARIANT"; exit 1 ;;
esac
echo "BUILD_ARGS=$BUILD_ARGS" >> "$GITHUB_ENV"

clang11-x86_64:
runs-on: ubuntu-22.04
env:
CC: clang-11
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh

clang10-x86_64:
runs-on: ubuntu-latest
env:
CC: clang
TARGET: x86_64
steps:
- uses: actions/checkout@v6
- name: install dependencies
run: .ci/install-dependencies.sh
- name: build check
run: .ci/run-build-and-tests.sh
run: .ci/run-build-and-tests.sh $BUILD_ARGS