Skip to content

Bump to C++20

Bump to C++20 #761

Workflow file for this run

name: CI
on:
push:
branches: [ develop, stable ]
pull_request:
branches: [ develop, stable ]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
# FIXME: add no-openmp, and maybe -DCMAKE_BUILD_TYPE=Debug jobs
jobs:
linux-fast:
strategy:
fail-fast: false
matrix:
os: [ linux ]
compiler:
- { distro: "debian:trixie-slim", family: GNU, version: 13, CC: gcc-13, CXX: g++-13 }
- { distro: "debian:unstable-slim", family: LLVM, version: 17, CC: clang-17, CXX: clang++-17 }
flavor: [ RelWithDebInfo, Release ]
uses: ./.github/workflows/CI-linux.yml
with:
os: ${{ matrix.os }}
distro: ${{ matrix.compiler.distro }}
compiler-family: ${{ matrix.compiler.family }}
compiler-version: ${{ matrix.compiler.version }}
compiler-CC: ${{ matrix.compiler.CC }}
compiler-CXX: ${{ matrix.compiler.CXX }}
compiler-GCOV: ${{ matrix.compiler.GCOV }}
compiler-CLANG_TIDY: ${{ matrix.compiler.CLANG_TIDY }}
flavor: ${{ matrix.flavor }}
linux-legacy:
strategy:
fail-fast: false
matrix:
os: [ linux ]
compiler:
- { distro: "debian:bookworm-slim", family: GNU, version: 12, CC: gcc-12, CXX: g++-12 }
- { distro: "debian:trixie-slim", family: LLVM, version: 16, CC: clang-16, CXX: clang++-16 }
- { distro: "debian:bookworm-slim", family: LLVM, version: 15, CC: clang-15, CXX: clang++-15 }
- { distro: "debian:bookworm-slim", family: LLVM, version: 14, CC: clang-14, CXX: clang++-14 }
flavor: [ RelWithDebInfo, Release ]
uses: ./.github/workflows/CI-linux.yml
with:
os: ${{ matrix.os }}
distro: ${{ matrix.compiler.distro }}
compiler-family: ${{ matrix.compiler.family }}
compiler-version: ${{ matrix.compiler.version }}
compiler-CC: ${{ matrix.compiler.CC }}
compiler-CXX: ${{ matrix.compiler.CXX }}
compiler-GCOV: ${{ matrix.compiler.GCOV }}
compiler-CLANG_TIDY: ${{ matrix.compiler.CLANG_TIDY }}
flavor: ${{ matrix.flavor }}
linux-static-analysis:
strategy:
fail-fast: false
matrix:
include:
- os: linux
compiler: { distro: "debian:unstable-slim", family: LLVM, version: 17, CC: clang-17, CXX: clang++-17, CLANG_TIDY: clang-tidy-17 }
flavor: ClangTidy
- os: linux
compiler: { distro: "debian:unstable-slim", family: LLVM, version: 17, CC: clang-17, CXX: clang++-17 }
flavor: ClangStaticAnalysis
- os: linux
compiler: { distro: "debian:unstable-slim", family: LLVM, version: 17, CC: clang-17, CXX: clang++-17 }
flavor: CodeQLAnalysis
uses: ./.github/workflows/CI-linux.yml
with:
os: ${{ matrix.os }}
distro: ${{ matrix.compiler.distro }}
compiler-family: ${{ matrix.compiler.family }}
compiler-version: ${{ matrix.compiler.version }}
compiler-CC: ${{ matrix.compiler.CC }}
compiler-CXX: ${{ matrix.compiler.CXX }}
compiler-GCOV: ${{ matrix.compiler.GCOV }}
compiler-CLANG_TIDY: ${{ matrix.compiler.CLANG_TIDY }}
flavor: ${{ matrix.flavor }}
linux-coverage:
strategy:
fail-fast: false
matrix:
include:
- os: linux
compiler: { distro: "debian:trixie-slim", family: GNU, version: 13, CC: gcc-13, CXX: g++-13, GCOV: gcov-13 }
flavor: Coverage
uses: ./.github/workflows/CI-linux.yml
with:
os: ${{ matrix.os }}
distro: ${{ matrix.compiler.distro }}
compiler-family: ${{ matrix.compiler.family }}
compiler-version: ${{ matrix.compiler.version }}
compiler-CC: ${{ matrix.compiler.CC }}
compiler-CXX: ${{ matrix.compiler.CXX }}
compiler-GCOV: ${{ matrix.compiler.GCOV }}
compiler-CLANG_TIDY: ${{ matrix.compiler.CLANG_TIDY }}
flavor: ${{ matrix.flavor }}
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
linux-sonarcloud-static-analysis:
if: github.repository == 'darktable-org/rawspeed' && github.event_name != 'pull_request' && github.ref_type == 'branch' && (github.ref_name == 'develop' || github.ref_name == 'stable')
strategy:
fail-fast: false
matrix:
include:
- os: linux
compiler: { distro: "debian:unstable-slim", family: LLVM, version: 17, CC: clang-17, CXX: clang++-17 }
flavor: SonarCloudStaticAnalysis
uses: ./.github/workflows/CI-linux.yml
with:
os: ${{ matrix.os }}
distro: ${{ matrix.compiler.distro }}
compiler-family: ${{ matrix.compiler.family }}
compiler-version: ${{ matrix.compiler.version }}
compiler-CC: ${{ matrix.compiler.CC }}
compiler-CXX: ${{ matrix.compiler.CXX }}
compiler-GCOV: ${{ matrix.compiler.GCOV }}
compiler-CLANG_TIDY: ${{ matrix.compiler.CLANG_TIDY }}
flavor: ${{ matrix.flavor }}
secrets:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_PROJECT_KEY: ${{ secrets.SONAR_PROJECT_KEY }}
SONAR_ORGANIZATION: ${{ secrets.SONAR_ORGANIZATION }}
linux-ossfuzz:
if: github.repository == 'darktable-org/rawspeed' && (github.event_name == 'pull_request' || (github.ref_type == 'branch' && github.ref_name == 'develop'))
strategy:
fail-fast: false
matrix:
sanitizer: [ address, undefined, memory ]
uses: ./.github/workflows/CI-ossfuzz.yml
with:
sanitizer: ${{ matrix.sanitizer }}
windows-msys2-fast:
strategy:
fail-fast: false
matrix:
os: [ windows-latest ]
msys2:
- { msystem: MINGW64, arch: x86_64, family: GNU, CC: gcc, CXX: g++ }
- { msystem: MINGW32, arch: i686, family: GNU, CC: gcc, CXX: g++ }
- { msystem: CLANG64, arch: x86_64, family: LLVM, CC: clang, CXX: clang++ }
- { msystem: CLANG32, arch: i686, family: LLVM, CC: clang, CXX: clang++ }
- { msystem: UCRT64, arch: x86_64, family: GNU, CC: gcc, CXX: g++ }
flavor: [ RelWithDebInfo, Release ]
uses: ./.github/workflows/CI-windows-msys2.yml
with:
os: ${{ matrix.os }}
msys2-msystem: ${{ matrix.msys2.msystem }}
msys2-arch: ${{ matrix.msys2.arch }}
compiler-family: ${{ matrix.msys2.family }}
compiler-CC: ${{ matrix.msys2.CC }}
compiler-CXX: ${{ matrix.msys2.CXX }}
flavor: ${{ matrix.flavor }}
windows-msys2-coverage:
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
msys2: { msystem: MINGW64, arch: x86_64, family: GNU, CC: gcc, CXX: g++ }
flavor: Coverage
uses: ./.github/workflows/CI-windows-msys2.yml
with:
os: ${{ matrix.os }}
msys2-msystem: ${{ matrix.msys2.msystem }}
msys2-arch: ${{ matrix.msys2.arch }}
compiler-family: ${{ matrix.msys2.family }}
compiler-CC: ${{ matrix.msys2.CC }}
compiler-CXX: ${{ matrix.msys2.CXX }}
flavor: ${{ matrix.flavor }}
ECO: -DBUILD_BENCHMARKING=OFF
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
macOS-fast:
strategy:
fail-fast: false
matrix:
compiler:
- { os: macos-13, family: XCode, version: 14.3, deployment_target: 13.0, CC: cc, CXX: c++ } # LLVM15, native
- { os: macos-12, family: XCode, version: 14.2, deployment_target: 12.5, CC: cc, CXX: c++ } # LLVM14, native
flavor: [ RelWithDebInfo, Release ]
uses: ./.github/workflows/CI-macOS.yml
with:
os: ${{ matrix.compiler.os }}
os-deployment_target: ${{ matrix.compiler.deployment_target }}
compiler-family: ${{ matrix.compiler.family }}
compiler-version: ${{ matrix.compiler.version }}
compiler-CC: ${{ matrix.compiler.CC }}
compiler-CXX: ${{ matrix.compiler.CXX }}
flavor: ${{ matrix.flavor }}
macOS-legacy:
strategy:
fail-fast: false
matrix:
compiler:
- { os: macos-13, family: XCode, version: 14.3, deployment_target: 12.5, CC: cc, CXX: c++ } # LLVM15, "backdeploy"
flavor: [ RelWithDebInfo, Release ]
uses: ./.github/workflows/CI-macOS.yml
with:
os: ${{ matrix.compiler.os }}
os-deployment_target: ${{ matrix.compiler.deployment_target }}
compiler-family: ${{ matrix.compiler.family }}
compiler-version: ${{ matrix.compiler.version }}
compiler-CC: ${{ matrix.compiler.CC }}
compiler-CXX: ${{ matrix.compiler.CXX }}
flavor: ${{ matrix.flavor }}
macOS-coverage:
strategy:
fail-fast: false
matrix:
include:
- compiler: { os: macos-13, family: XCode, version: 14.3, deployment_target: 13.0, CC: cc, CXX: c++ } # LLVM15
flavor: Coverage
uses: ./.github/workflows/CI-macOS.yml
with:
os: ${{ matrix.compiler.os }}
os-deployment_target: ${{ matrix.compiler.deployment_target }}
compiler-family: ${{ matrix.compiler.family }}
compiler-version: ${{ matrix.compiler.version }}
compiler-CC: ${{ matrix.compiler.CC }}
compiler-CXX: ${{ matrix.compiler.CXX }}
flavor: ${{ matrix.flavor }}
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}