fix: stabilize kundither ci checks #3352
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
| name: libsixel CI (build & test) | |
| on: | |
| push: | |
| branches-ignore: | |
| - 'ci/triage/**' | |
| pull_request: | |
| branches: ['**'] | |
| schedule: | |
| - cron: '17 3 * * *' | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: false | |
| env: | |
| # Pin vcpkg to a stable release to avoid fetching future tool builds that | |
| # depend on unavailable CMake versions during bootstrap. | |
| VCPKG_REF: 2024.12.16 | |
| # Enforce Node.js 24 for JavaScript actions before the hosted-runner switch. | |
| # Node.js 24 becomes default on 2026-06-02 and Node.js 20 is removed on | |
| # 2026-09-16. | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" | |
| jobs: | |
| smoke: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-gcc | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| extra_packages: >- | |
| clang | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-gcc | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| extra_packages: >- | |
| meson | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-gcc | |
| buildtool: autotools | |
| runner: macos-latest | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-gcc | |
| buildtool: meson | |
| runner: macos-latest | |
| extra_packages: >- | |
| meson | |
| exec_type: bash | |
| - label: Meson-cmd-x86_64-msvc-x86_64 | |
| buildtool: meson | |
| runner: windows-latest | |
| exec_type: cmd | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| tcc: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-tcc-shared | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| extra_packages: >- | |
| clang | |
| tcc | |
| libc6-dev | |
| binutils | |
| setup_prefix: >- | |
| CC=tcc | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-tcc-static | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=tcc | |
| setup_options: >- | |
| --disable-shared | |
| extra_packages: >- | |
| clang | |
| tcc | |
| libc6-dev | |
| binutils | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-tcc-shared-png-jpeg-tiff-webp | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=tcc | |
| setup_options: >- | |
| --with-png | |
| --with-jpeg | |
| --with-tiff | |
| --with-webp | |
| extra_packages: >- | |
| clang | |
| tcc | |
| libc6-dev | |
| binutils | |
| libpng-dev | |
| libjpeg-dev | |
| libtiff-dev | |
| libwebp-dev | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-tcc-shared-gd | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=tcc | |
| setup_options: >- | |
| --with-gd | |
| extra_packages: >- | |
| clang | |
| tcc | |
| libc6-dev | |
| binutils | |
| libgd-dev | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-tcc-no-threads | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=tcc | |
| setup_options: >- | |
| --disable-threads | |
| extra_packages: >- | |
| clang | |
| tcc | |
| libc6-dev | |
| binutils | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-tcc-amalgamated_lib | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=tcc | |
| setup_options: >- | |
| --enable-amalgamated-lib | |
| extra_packages: >- | |
| clang | |
| tcc | |
| libc6-dev | |
| binutils | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-tcc-amalgamated_tools | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=tcc | |
| setup_options: >- | |
| --enable-amalgamated-tools | |
| extra_packages: >- | |
| clang | |
| tcc | |
| libc6-dev | |
| binutils | |
| exec_type: bash | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| staticcheck: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-gcc-staticcheck | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| mkdir -p "$HOME/.local/bin"; | |
| command -v actionlint >/dev/null 2>&1 || | |
| { curl -sSfL https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash | | |
| bash -s -- latest "$HOME/.local/bin"; }; | |
| PATH="$HOME/.local/bin:$PATH" | |
| check_target: staticcheck | |
| extra_packages: >- | |
| shellcheck | |
| codespell | |
| curl | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-gcc-staticcheck | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| mkdir -p "$HOME/.local/bin"; | |
| command -v actionlint >/dev/null 2>&1 || | |
| { curl -sSfL https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash | | |
| bash -s -- latest "$HOME/.local/bin"; }; | |
| PATH="$HOME/.local/bin:$PATH" | |
| check_target: compile staticcheck | |
| extra_packages: >- | |
| meson | |
| shellcheck | |
| codespell | |
| curl | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| static-analyze: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - label: Meson-cmd-x86_64-msvc-static-analyze | |
| runner: windows-latest | |
| analyzer: msvc | |
| - label: Autotools-ubuntu-x86_64-clang-static-analyze | |
| runner: ubuntu-latest | |
| analyzer: clang | |
| - label: Autotools-ubuntu-x86_64-gcc-static-analyze | |
| runner: ubuntu-latest | |
| analyzer: gcc | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Setup MSVC developer env | |
| if: ${{ matrix.analyzer == 'msvc' }} | |
| shell: pwsh | |
| run: | | |
| & "${{ github.workspace }}\.github\scripts\setup-msvc-env.ps1" -Arch x64 | |
| - name: Build with MSVC /W4 /analyze | |
| if: ${{ matrix.analyzer == 'msvc' }} | |
| shell: cmd | |
| run: | | |
| setlocal ENABLEDELAYEDEXPANSION | |
| python -m pip install --upgrade pip | |
| if errorlevel 1 exit /b !errorlevel! | |
| python -m pip install meson | |
| if errorlevel 1 exit /b !errorlevel! | |
| python -m mesonbuild.mesonmain setup builddir -Danalyzer=true | |
| if errorlevel 1 exit /b !errorlevel! | |
| python -m mesonbuild.mesonmain compile -C builddir --ninja-args=-k0 | |
| if errorlevel 1 exit /b !errorlevel! | |
| endlocal | |
| - name: Install Clang Static Analyzer | |
| if: ${{ matrix.analyzer == 'clang' }} | |
| shell: bash | |
| run: | | |
| set -eux | |
| sudo apt-get update | |
| sudo apt-get install -y clang clang-tools | |
| - name: Build with Clang Static Analyzer | |
| if: ${{ matrix.analyzer == 'clang' }} | |
| shell: bash | |
| run: | | |
| set -eux | |
| CC=clang ./configure --enable-analyzer | |
| SCAN_BUILD="$(command -v scan-build || command -v scan-build-18 || command -v scan-build-17 || command -v scan-build-16)" | |
| ROOT_DIR="$(pwd)" | |
| "$SCAN_BUILD" \ | |
| --use-cc=clang \ | |
| --use-c++=clang++ \ | |
| -disable-checker deadcode.DeadStores \ | |
| --exclude "$ROOT_DIR/assessment" \ | |
| --exclude "$ROOT_DIR/tests" \ | |
| --exclude "$ROOT_DIR/examples" \ | |
| --exclude "$ROOT_DIR/drawing" \ | |
| --exclude "$ROOT_DIR/python" \ | |
| --exclude "$ROOT_DIR/ruby" \ | |
| --exclude "$ROOT_DIR/windows" \ | |
| --exclude "$ROOT_DIR/quicklook-extension" \ | |
| --status-bugs \ | |
| --keep-going \ | |
| make -j"$(nproc)" V=1 | |
| - name: Build with GCC Static Analyzer | |
| if: ${{ matrix.analyzer == 'gcc' }} | |
| shell: bash | |
| run: | | |
| set -eux | |
| CC=gcc ./configure --enable-analyzer | |
| make -j"$(nproc)" V=1 | |
| pgo: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-clang-pgo | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| export LLVM_PROFILE_FILE="${GITHUB_WORKSPACE}/pgo/default-%p-%m.profraw"; | |
| mkdir build; | |
| cd build; | |
| rel=..; | |
| CC=clang | |
| setup_options: >- | |
| --enable-pgo=generate --with-pgo-data=${GITHUB_WORKSPACE}/pgo | |
| pgo_use_options: >- | |
| --enable-pgo=use --with-pgo-profdata=${GITHUB_WORKSPACE}/pgo/default.profdata | |
| extra_packages: >- | |
| clang | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-clang-pgo | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| export LLVM_PROFILE_FILE="$PWD/pgo/default-%p-%m.profraw"; | |
| CC=clang | |
| setup_options: >- | |
| -Db_pgo=generate | |
| pgo_use_options: >- | |
| -Db_pgo=use | |
| extra_packages: >- | |
| meson | |
| clang | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-gcc-pgo | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| --enable-pgo=generate --with-pgo-data=${GITHUB_WORKSPACE}/pgo | |
| pgo_use_options: >- | |
| --enable-pgo=use --with-pgo-data=${GITHUB_WORKSPACE}/pgo | |
| extra_packages: >- | |
| clang | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-gcc-pgo | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| -Db_pgo=generate | |
| pgo_use_options: >- | |
| -Db_pgo=use | |
| extra_packages: >- | |
| meson | |
| exec_type: bash | |
| - label: Meson-cmd-x86_64-msvc-pgo | |
| buildtool: meson | |
| runner: windows-latest | |
| setup_options: >- | |
| -Dmsvc_pgo=generate | |
| pgo_use_options: >- | |
| -Dmsvc_pgo=use | |
| exec_type: cmd | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| python: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-gcc-python | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| --enable-python | |
| extra_packages: >- | |
| clang | |
| pip_packages: >- | |
| build | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-gcc-python-vpath_build | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| mkdir build; | |
| cd build; | |
| rel=..; | |
| setup_options: >- | |
| --enable-python | |
| extra_packages: >- | |
| clang | |
| pip_packages: >- | |
| build | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-gcc-python | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| -Dpython=enabled | |
| extra_packages: >- | |
| meson | |
| pip_packages: >- | |
| build | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-gcc-python | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_options: >- | |
| --enable-python | |
| pip_packages: >- | |
| build | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-gcc-python | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_options: >- | |
| -Dpython=enabled | |
| extra_packages: >- | |
| meson | |
| pip_packages: >- | |
| build | |
| exec_type: bash | |
| - label: Meson-cmd-x86_64-msvc-x86_64-python | |
| buildtool: meson | |
| runner: windows-latest | |
| setup_options: >- | |
| -Dpython=enabled | |
| pip_packages: >- | |
| build | |
| exec_type: cmd | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| python-coverage: | |
| needs: [python] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-gcc-python-coverage | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| --enable-python | |
| extra_packages: >- | |
| clang | |
| pip_packages: >- | |
| build | |
| pytest | |
| coverage | |
| check_target: check-python | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-gcc-python-coverage | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| -Dpython=enabled | |
| extra_packages: >- | |
| meson | |
| pip_packages: >- | |
| build | |
| pytest | |
| coverage | |
| check_target: compile test-python | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-gcc-python-coverage | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_options: >- | |
| --enable-python | |
| pip_packages: >- | |
| build | |
| pytest | |
| coverage | |
| check_target: check-python | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-gcc-python-coverage | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_options: >- | |
| -Dpython=enabled | |
| extra_packages: >- | |
| meson | |
| pip_packages: >- | |
| build | |
| pytest | |
| coverage | |
| check_target: compile test-python | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| ruby: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-gcc-ruby | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| --enable-ruby | |
| extra_packages: >- | |
| clang | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-gcc-ruby-vpath_build | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| mkdir build; | |
| cd build; | |
| rel=..; | |
| setup_options: >- | |
| --enable-ruby | |
| extra_packages: >- | |
| clang | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-gcc-ruby | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| -Druby=enabled | |
| extra_packages: >- | |
| meson | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-gcc-ruby | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_options: >- | |
| --enable-ruby | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-gcc-ruby | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_options: >- | |
| -Druby=enabled | |
| extra_packages: >- | |
| meson | |
| exec_type: bash | |
| - label: Meson-cmd-x86_64-msvc-x86_64-ruby | |
| buildtool: meson | |
| runner: windows-latest | |
| setup_options: >- | |
| -Druby=enabled | |
| exec_type: cmd | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| ruby-coverage: | |
| needs: [ruby] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-gcc-ruby-coverage | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| --enable-ruby | |
| extra_packages: >- | |
| clang | |
| check_target: check-ruby | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-gcc-ruby-coverage | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| -Druby=enabled | |
| extra_packages: >- | |
| meson | |
| check_target: compile test-ruby | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-gcc-ruby-coverage | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_options: >- | |
| --enable-ruby | |
| check_target: check-ruby | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-gcc-ruby-coverage | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_options: >- | |
| -Druby=enabled | |
| extra_packages: >- | |
| meson | |
| check_target: compile test-ruby | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| perl: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-gcc-perl | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| --enable-perl | |
| extra_packages: >- | |
| clang | |
| cpanminus | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-gcc-perl-vpath_build | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| mkdir build; | |
| cd build; | |
| rel=..; | |
| setup_options: >- | |
| --enable-perl | |
| extra_packages: >- | |
| clang | |
| cpanminus | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-gcc-perl | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| -Dperl=enabled | |
| extra_packages: >- | |
| meson | |
| cpanminus | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-gcc-perl | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_options: >- | |
| --enable-perl | |
| extra_packages: >- | |
| cpanminus | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-gcc-perl | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_options: >- | |
| -Dperl=enabled | |
| extra_packages: >- | |
| meson | |
| cpanminus | |
| exec_type: bash | |
| - label: Meson-cmd-x86_64-msvc-x86_64-perl | |
| buildtool: meson | |
| runner: windows-latest | |
| setup_options: >- | |
| -Dperl=enabled | |
| exec_type: cmd | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| perl-coverage: | |
| needs: [perl] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-gcc-perl-coverage | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| --enable-perl | |
| extra_packages: >- | |
| clang | |
| cpanminus | |
| check_target: check-perl | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-gcc-perl-coverage | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| -Dperl=enabled | |
| extra_packages: >- | |
| meson | |
| cpanminus | |
| check_target: compile test-perl | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-gcc-perl-coverage | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_options: >- | |
| --enable-perl | |
| extra_packages: >- | |
| cpanminus | |
| check_target: check-perl | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-gcc-perl-coverage | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_options: >- | |
| -Dperl=enabled | |
| extra_packages: >- | |
| meson | |
| cpanminus | |
| check_target: compile test-perl | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| php: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-gcc-php | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| --enable-php | |
| extra_packages: >- | |
| clang | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-gcc-php-vpath_build | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| mkdir build; | |
| cd build; | |
| rel=..; | |
| setup_options: >- | |
| --enable-php | |
| extra_packages: >- | |
| clang | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-gcc-php | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| -Dphp=enabled | |
| extra_packages: >- | |
| meson | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-gcc-php | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_options: >- | |
| --enable-php | |
| extra_packages: >- | |
| php | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-gcc-php | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_options: >- | |
| -Dphp=enabled | |
| extra_packages: >- | |
| meson | |
| php | |
| exec_type: bash | |
| - label: Meson-cmd-x86_64-msvc-x86_64-php | |
| buildtool: meson | |
| runner: windows-latest | |
| setup_options: >- | |
| -Dphp=enabled | |
| exec_type: cmd | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| php-coverage: | |
| needs: [php] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-gcc-php-coverage | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| --enable-php | |
| extra_packages: >- | |
| clang | |
| check_target: check-php | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-gcc-php-coverage | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| -Dphp=enabled | |
| extra_packages: >- | |
| meson | |
| check_target: compile test-php | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-gcc-php-coverage | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_options: >- | |
| --enable-php | |
| extra_packages: >- | |
| php | |
| check_target: check-php | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-gcc-php-coverage | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_options: >- | |
| -Dphp=enabled | |
| extra_packages: >- | |
| meson | |
| php | |
| check_target: compile test-php | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| autotools-out_of_tree: | |
| needs: [smoke] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-gcc-vpath_build | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| mkdir build; | |
| cd build; | |
| rel=..; | |
| extra_packages: >- | |
| clang | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| lto: | |
| needs: [smoke] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-clang-lto-no | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-lto=no | |
| extra_packages: >- | |
| clang | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-clang-lto-full | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-lto=full | |
| extra_packages: >- | |
| clang | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-clang-lto-thin | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-lto=thin | |
| extra_packages: >- | |
| clang | |
| exec_type: bash | |
| - label: Autotools-msys2-msys-msvc-lto-full | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: MSYS | |
| setup_prefix: >- | |
| CC=cl | |
| LD=link | |
| AR="sh ar-lib lib" | |
| ARFLAGS=cr | |
| NM="dumpbin -symbols" | |
| STRIP=: | |
| RANLIB=: | |
| setup_options: >- | |
| --host=x86_64-pc-windows-msvc | |
| --enable-lto=full | |
| extra_packages: >- | |
| make | |
| exec_type: msys2 | |
| - label: Meson-ubuntu-x86_64-gcc-lto-full | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| -Db_lto=true | |
| -Db_lto_mode=default | |
| extra_packages: >- | |
| meson | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-clang-lto-thin | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| LDFLAGS='-fuse-ld=lld' | |
| setup_options: >- | |
| -Db_lto=true | |
| -Db_lto_mode=thin | |
| extra_packages: >- | |
| meson | |
| clang | |
| lld | |
| exec_type: bash | |
| - label: Meson-cmd-x86_64-msvc-x86_64-lto-full | |
| buildtool: meson | |
| runner: windows-latest | |
| setup_options: >- | |
| -Db_lto=true | |
| -Db_lto_mode=default | |
| exec_type: cmd | |
| steps: | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| coverage-autotools: | |
| needs: [smoke] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-static-coverage | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=gcc-14 | |
| setup_options: >- | |
| --enable-gcov | |
| --disable-shared | |
| --enable-static | |
| extra_packages: >- | |
| gcc-14 | |
| gcovr | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-no-simd-coverage | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=gcc-14 | |
| setup_options: >- | |
| --enable-gcov | |
| --disable-simd | |
| extra_packages: >- | |
| gcc-14 | |
| pip_packages: >- | |
| gcovr | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-no-threads-coverage | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=gcc-14 | |
| setup_options: >- | |
| --enable-gcov | |
| --disable-threads | |
| extra_packages: >- | |
| gcc-14 | |
| pip_packages: >- | |
| gcovr | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-lcms2-coverage | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-gcov | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --without-webp | |
| --without-librsvg | |
| --with-lcms2 | |
| extra_packages: >- | |
| meson | |
| clang | |
| liblcms2-dev | |
| pip_packages: >- | |
| gcovr | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-clang-png-jpeg-tiff-webp-svg-coverage | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-gcov | |
| --with-png | |
| --with-jpeg | |
| --with-tiff | |
| --with-webp | |
| --with-librsvg | |
| --without-lcms2 | |
| extra_packages: >- | |
| meson | |
| clang | |
| libpng-dev | |
| libjpeg-dev | |
| libtiff-dev | |
| libwebp-dev | |
| librsvg2-dev | |
| pip_packages: >- | |
| gcovr | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-clang-png-jpeg-tiff-webp-svg-lcms2-coverage | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-gcov | |
| --with-png | |
| --with-jpeg | |
| --with-tiff | |
| --with-webp | |
| --with-librsvg | |
| --with-lcms2 | |
| extra_packages: >- | |
| meson | |
| clang | |
| libpng-dev | |
| libjpeg-dev | |
| libtiff-dev | |
| libwebp-dev | |
| librsvg2-dev | |
| liblcms2-dev | |
| pip_packages: >- | |
| gcovr | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-gdk-pixbuf2-coverage | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-gcov | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --with-gdk-pixbuf2 | |
| extra_packages: >- | |
| clang | |
| libgdk-pixbuf2.0-dev | |
| pip_packages: >- | |
| gcovr | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-GD-no-aborttrace-coverage | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-gcov | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --with-gd | |
| --disable-abort-trace | |
| extra_packages: >- | |
| clang | |
| libgd-dev | |
| pip_packages: >- | |
| gcovr | |
| exec_type: bash | |
| - label: Autotools-macos-x86_64-coverage | |
| buildtool: autotools | |
| runner: macos-15-intel | |
| setup_options: >- | |
| --enable-gcov | |
| extra_packages: >- | |
| lcov | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-lcms2-coverage | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_options: >- | |
| --enable-gcov | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --without-webp | |
| --without-librsvg | |
| --with-lcms2 | |
| extra_packages: >- | |
| lcms2 | |
| lcov | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-png-jpegturbo-tiff-webp-svg-coverage | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_options: >- | |
| --enable-gcov | |
| --with-png | |
| --with-jpeg | |
| --with-tiff | |
| --with-webp | |
| --with-librsvg | |
| --without-lcms2 | |
| extra_packages: >- | |
| libpng | |
| jpeg-turbo | |
| libtiff | |
| webp | |
| librsvg | |
| lcov | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-png-jpegturbo-tiff-webp-svg-lcms2-coverage | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_options: >- | |
| --enable-gcov | |
| --with-png | |
| --with-jpeg | |
| --with-tiff | |
| --with-webp | |
| --with-librsvg | |
| --with-lcms2 | |
| extra_packages: >- | |
| libpng | |
| jpeg-turbo | |
| libtiff | |
| webp | |
| librsvg | |
| lcms2 | |
| lcov | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-gdk-pixbuf2-coverage | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-gcov | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --with-gdk-pixbuf2 | |
| extra_packages: >- | |
| gdk-pixbuf | |
| lcov | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-GD-coverage | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-gcov | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --with-gd | |
| extra_packages: >- | |
| gd | |
| lcov | |
| exec_type: bash | |
| - label: Autotools-msys2-mingw64-static-coverage | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: MINGW64 | |
| setup_options: >- | |
| --disable-shared | |
| --enable-static | |
| --enable-gcov | |
| extra_packages: >- | |
| make | |
| mingw-w64-x86_64-toolchain | |
| mingw-w64-x86_64-lcov | |
| exec_type: msys2 | |
| - label: Autotools-msys2-mingw64-no-simd-coverage | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: MINGW64 | |
| setup_options: >- | |
| --enable-gcov | |
| --disable-simd | |
| extra_packages: >- | |
| make | |
| mingw-w64-x86_64-toolchain | |
| mingw-w64-x86_64-lcov | |
| exec_type: msys2 | |
| - label: Autotools-msys2-mingw64-no-threads-coverage | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: MINGW64 | |
| setup_options: >- | |
| --disable-threads | |
| --enable-gcov | |
| extra_packages: >- | |
| make | |
| mingw-w64-x86_64-toolchain | |
| mingw-w64-x86_64-lcov | |
| exec_type: msys2 | |
| - label: Autotools-msys2-ucrt64-coverage | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: UCRT64 | |
| setup_options: >- | |
| --enable-gcov | |
| extra_packages: >- | |
| make | |
| mingw-w64-ucrt-x86_64-toolchain | |
| mingw-w64-ucrt-x86_64-lcov | |
| exec_type: msys2 | |
| - label: Autotools-msys2-clang64-coverage | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: CLANG64 | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-gcov | |
| extra_packages: >- | |
| make | |
| mingw-w64-clang-x86_64-toolchain | |
| mingw-w64-clang-x86_64-lcov | |
| exec_type: msys2 | |
| - label: Autotools-msys2-msys-gcc-coverage | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: MSYS | |
| setup_options: >- | |
| --enable-gcov | |
| extra_packages: >- | |
| make | |
| gcc | |
| lcov | |
| exec_type: msys2 | |
| - label: Autotools-cygwin64-clangcl-msvc_abi-coverage | |
| buildtool: autotools | |
| runner: windows-latest | |
| setup_prefix: >- | |
| CC=clang-cl | |
| LD=link | |
| AR="sh ar-lib lib" | |
| ARFLAGS=cr | |
| NM="dumpbin -symbols" | |
| STRIP=: | |
| RANLIB=: | |
| setup_options: >- | |
| --host=x86_64-pc-windows-msvc | |
| --enable-threads | |
| --enable-gcov | |
| extra_packages: >- | |
| make | |
| exec_type: cygwin | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| coverage-meson: | |
| needs: [smoke] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Meson-ubuntu-x86_64-static-coverage | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=gcc-14 | |
| setup_options: >- | |
| -Db_coverage=true | |
| -Db_staticpic=true | |
| -Ddefault_library=static | |
| extra_packages: >- | |
| meson | |
| gcc-14 | |
| pip_packages: >- | |
| gcovr | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-no-simd-coverage | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=gcc-14 | |
| setup_options: >- | |
| -Db_coverage=true | |
| -Dsimd=disabled | |
| extra_packages: >- | |
| meson | |
| gcc-14 | |
| pip_packages: >- | |
| gcovr | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-no-threads-coverage | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=gcc-14 | |
| setup_options: >- | |
| -Db_coverage=true | |
| -Dthreads=disabled | |
| extra_packages: >- | |
| gcc-14 | |
| pip_packages: >- | |
| meson | |
| gcovr | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-clang-lcms2-coverage | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| -Db_coverage=true | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| -Dwebp=disabled | |
| -Dlibrsvg=disabled | |
| -Dlcms2=enabled | |
| extra_packages: >- | |
| meson | |
| clang | |
| liblcms2-dev | |
| pip_packages: >- | |
| gcovr | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-clang-png-jpeg-tiff-webp-svg-coverage | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| -Db_coverage=true | |
| -Dpng=enabled | |
| -Djpeg=enabled | |
| -Dtiff=enabled | |
| -Dwebp=enabled | |
| -Dlibrsvg=enabled | |
| -Dlcms2=disabled | |
| extra_packages: >- | |
| meson | |
| clang | |
| libpng-dev | |
| libjpeg-dev | |
| libtiff-dev | |
| libwebp-dev | |
| librsvg2-dev | |
| pip_packages: >- | |
| gcovr | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-clang-png-jpeg-tiff-webp-svg-lcms2-coverage | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| -Db_coverage=true | |
| -Dpng=enabled | |
| -Djpeg=enabled | |
| -Dtiff=enabled | |
| -Dwebp=enabled | |
| -Dlibrsvg=enabled | |
| -Dlcms2=enabled | |
| extra_packages: >- | |
| meson | |
| clang | |
| libpng-dev | |
| libjpeg-dev | |
| libtiff-dev | |
| libwebp-dev | |
| librsvg2-dev | |
| liblcms2-dev | |
| pip_packages: >- | |
| gcovr | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-gdk-pixbuf2-coverage | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| -Db_coverage=true | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| -Dgdk_pixbuf2=enabled | |
| extra_packages: >- | |
| meson | |
| clang | |
| libgdk-pixbuf2.0-dev | |
| pip_packages: >- | |
| gcovr | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-GD-no-aborttrace-coverage | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| -Db_coverage=true | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| -Dgd=enabled | |
| -Dabort_trace=disabled | |
| extra_packages: >- | |
| meson | |
| clang | |
| libgd-dev | |
| pip_packages: >- | |
| gcovr | |
| exec_type: bash | |
| - label: Meson-macos-x86_64-unity-coverage | |
| buildtool: meson | |
| runner: macos-15-intel | |
| setup_options: >- | |
| -Db_coverage=true | |
| -Dunity=on | |
| extra_packages: >- | |
| meson | |
| lcov | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-gdk-pixbuf2-coverage | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| -Db_coverage=true | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| -Dgdk_pixbuf2=enabled | |
| extra_packages: >- | |
| meson | |
| gdk-pixbuf | |
| lcov | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-GD-coverage | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| -Db_coverage=true | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| -Dgd=enabled | |
| extra_packages: >- | |
| meson | |
| gd | |
| lcov | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-amalgamated-lib-disable-appkit-coverage | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_options: >- | |
| -Db_coverage=true | |
| -Damalgamated_lib=true | |
| -Dappkit=disabled | |
| extra_packages: >- | |
| meson | |
| lcov | |
| exec_type: bash | |
| - label: Meson-msys2-mingw64-no-simd-coverage | |
| buildtool: meson | |
| runner: windows-latest | |
| msystem: MINGW64 | |
| setup_options: >- | |
| -Db_coverage=true | |
| -Dsimd=disabled | |
| setup_prefix: >- | |
| CC=gcc | |
| extra_packages: >- | |
| mingw-w64-x86_64-meson | |
| mingw-w64-x86_64-toolchain | |
| mingw-w64-x86_64-lcov | |
| exec_type: msys2 | |
| - label: Meson-msys2-mingw64-no-threads-coverage | |
| buildtool: meson | |
| runner: windows-latest | |
| msystem: MINGW64 | |
| setup_prefix: >- | |
| CC=gcc | |
| setup_options: >- | |
| -Dthreads=disabled | |
| -Db_coverage=true | |
| extra_packages: >- | |
| mingw-w64-x86_64-meson | |
| mingw-w64-x86_64-toolchain | |
| mingw-w64-x86_64-lcov | |
| exec_type: msys2 | |
| - label: Meson-msys2-ucrt64-unity-coverage | |
| buildtool: meson | |
| runner: windows-latest | |
| msystem: UCRT64 | |
| setup_prefix: >- | |
| CC=gcc | |
| setup_options: >- | |
| -Db_coverage=true | |
| -Dunity=on | |
| extra_packages: >- | |
| mingw-w64-ucrt-x86_64-meson | |
| mingw-w64-ucrt-x86_64-toolchain | |
| mingw-w64-ucrt-x86_64-lcov | |
| exec_type: msys2 | |
| - label: Meson-msys2-ucrt64-amalgamated-lib-coverage | |
| buildtool: meson | |
| runner: windows-latest | |
| msystem: UCRT64 | |
| setup_prefix: >- | |
| CC=gcc | |
| setup_options: >- | |
| -Db_coverage=true | |
| -Damalgamated_lib=true | |
| extra_packages: >- | |
| mingw-w64-ucrt-x86_64-meson | |
| mingw-w64-ucrt-x86_64-toolchain | |
| mingw-w64-ucrt-x86_64-lcov | |
| exec_type: msys2 | |
| - label: Meson-msys2-clang64-coverage | |
| buildtool: meson | |
| runner: windows-latest | |
| msystem: CLANG64 | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| -Db_coverage=true | |
| extra_packages: >- | |
| mingw-w64-clang-x86_64-meson | |
| mingw-w64-clang-x86_64-toolchain | |
| mingw-w64-clang-x86_64-lcov | |
| exec_type: msys2 | |
| - label: Meson-msys2-msys-gcc-coverage | |
| buildtool: meson | |
| runner: windows-latest | |
| msystem: MSYS | |
| setup_prefix: >- | |
| CC=gcc | |
| setup_options: >- | |
| -Db_coverage=true | |
| extra_packages: >- | |
| meson | |
| gcc | |
| lcov | |
| exec_type: msys2 | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| coverage-autotools-cygwin64-msvc: | |
| needs: [smoke] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - label: Autotools-cygwin64-msvc-coverage | |
| buildtool: autotools | |
| runner: windows-latest | |
| setup_prefix: >- | |
| CC=cl | |
| LD=link | |
| AR="sh ar-lib lib" | |
| ARFLAGS=cr | |
| NM="dumpbin -symbols" | |
| STRIP=: | |
| RANLIB=: | |
| setup_options: >- | |
| --host=x86_64-pc-windows-msvc | |
| extra_packages: >- | |
| make | |
| exec_type: cygwin-msvc-codecoverage | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| core-autotools-ubuntu: | |
| needs: [coverage-autotools] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-clang | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| extra_packages: >- | |
| clang | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-no-tools | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| --disable-img2sixel | |
| --disable-sixel2png | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-musl | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=musl-gcc | |
| extra_packages: >- | |
| musl-tools | |
| exec_type: bash | |
| - label: Autotools-ubuntu-24.04-aarch64-amalgamated_lib | |
| buildtool: autotools | |
| runner: ubuntu-24.04-arm | |
| setup_prefix: >- | |
| CC=gcc-14 | |
| setup_options: >- | |
| --enable-amalgamated-lib | |
| extra_packages: >- | |
| gcc-14 | |
| exec_type: bash | |
| - label: Autotools-ubuntu-24.04-aarch64-amalgamated_tools | |
| buildtool: autotools | |
| runner: ubuntu-24.04-arm | |
| setup_prefix: >- | |
| CC=gcc-14 | |
| setup_options: >- | |
| --enable-amalgamated-tools | |
| extra_packages: >- | |
| gcc-14 | |
| exec_type: bash | |
| - label: Autotools-ubuntu-i686 | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=gcc | |
| CFLAGS="-m32" | |
| LDFLAGS="-m32" | |
| PKG_CONFIG_LIBDIR=/usr/lib/i386-linux-gnu/pkgconfig | |
| PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig | |
| extra_packages: >- | |
| gcc-multilib | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| core-autotools-macos: | |
| needs: [core-autotools-ubuntu] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - label: Autotools-macos-aarch64-amalgamated-lib-disable-appkit | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_options: >- | |
| --enable-amalgamated-lib | |
| --disable-appkit | |
| exec_type: bash | |
| - label: Autotools-macos-x86_64-amalgamated_lib-amalgamated_tools | |
| buildtool: autotools | |
| runner: macos-15-intel | |
| setup_options: >- | |
| --enable-amalgamated-lib | |
| --enable-amalgamated-tools | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| core-autotools-msys2-variants: | |
| needs: [smoke] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 2 | |
| matrix: | |
| include: | |
| - label: Autotools-msys2-mingw64-no-tools | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: MINGW64 | |
| setup_options: >- | |
| --disable-img2sixel | |
| --disable-sixel2png | |
| extra_packages: >- | |
| make | |
| mingw-w64-x86_64-toolchain | |
| exec_type: msys2 | |
| - label: Autotools-msys2-ucrt64-amalgamated_lib | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: UCRT64 | |
| setup_options: >- | |
| --enable-amalgamated-lib | |
| extra_packages: >- | |
| make | |
| mingw-w64-ucrt-x86_64-toolchain | |
| mingw-w64-ucrt-x86_64-lcov | |
| exec_type: msys2 | |
| - label: Autotools-msys2-clang64 | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: CLANG64 | |
| setup_prefix: >- | |
| CC=clang | |
| extra_packages: >- | |
| make | |
| mingw-w64-clang-x86_64-toolchain | |
| exec_type: msys2 | |
| - label: Autotools-msys2-mingw32 | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: MINGW32 | |
| extra_packages: >- | |
| make | |
| mingw-w64-i686-toolchain | |
| exec_type: msys2 | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| core-autotools-cygwin: | |
| needs: [coverage-autotools] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 2 | |
| matrix: | |
| include: | |
| - label: Autotools-cygwin64-gcc | |
| buildtool: autotools | |
| runner: windows-latest | |
| extra_packages: >- | |
| make | |
| gcc-core | |
| exec_type: cygwin | |
| - label: Autotools-cygwin64-gcc-amalgamated_lib | |
| buildtool: autotools | |
| runner: windows-latest | |
| setup_options: >- | |
| --enable-amalgamated-lib | |
| extra_packages: >- | |
| gcc-core | |
| make | |
| exec_type: cygwin | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| core-autotools-msvc_abi-cygwin: | |
| needs: [core-autotools-msys2-variants] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 2 | |
| matrix: | |
| include: | |
| - label: Autotools-cygwin64-msvc | |
| buildtool: autotools | |
| runner: windows-latest | |
| setup_prefix: >- | |
| CC=cl | |
| LD=link | |
| AR="sh ar-lib lib" | |
| ARFLAGS=cr | |
| NM="dumpbin -symbols" | |
| STRIP=: | |
| RANLIB=: | |
| setup_options: >- | |
| --host=x86_64-pc-windows-msvc | |
| extra_packages: >- | |
| make | |
| exec_type: cygwin | |
| - label: Autotools-cygwin64-clangcl | |
| buildtool: autotools | |
| runner: windows-latest | |
| setup_prefix: >- | |
| CC=clang-cl | |
| LD=link | |
| AR="sh ar-lib lib" | |
| ARFLAGS=cr | |
| NM="dumpbin -symbols" | |
| STRIP=: | |
| RANLIB=: | |
| setup_options: >- | |
| --host=x86_64-pc-windows-msvc | |
| extra_packages: >- | |
| make | |
| exec_type: cygwin | |
| - label: Autotools-cygwin64-clang_msvc_abi | |
| buildtool: autotools | |
| runner: windows-latest | |
| setup_prefix: >- | |
| CC="clang --driver-mode=cl" | |
| LD=link | |
| AR="sh ar-lib lib" | |
| ARFLAGS=cr | |
| NM="dumpbin -symbols" | |
| STRIP=: | |
| RANLIB=: | |
| setup_options: >- | |
| --host=x86_64-pc-windows-msvc | |
| extra_packages: >- | |
| make | |
| exec_type: cygwin | |
| debug_temp: "1" | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| core-autotools-msvc_abi-msys2: | |
| needs: [core-autotools-msys2-variants] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - label: Autotools-msys2-msys-vs_clangcl | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: MSYS | |
| setup_prefix: >- | |
| CC=clang-cl | |
| LD=link | |
| AR="sh ar-lib lib" | |
| ARFLAGS=cr | |
| NM="dumpbin -symbols" | |
| STRIP=: | |
| RANLIB=: | |
| setup_options: >- | |
| --host=x86_64-pc-windows-msvc | |
| extra_packages: >- | |
| make | |
| exec_type: msys2 | |
| - label: Autotools-msys2-msys-msvc | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: MSYS | |
| setup_prefix: >- | |
| CC=cl | |
| LD=link | |
| AR="sh ar-lib lib" | |
| ARFLAGS=cr | |
| NM="dumpbin -symbols" | |
| STRIP=: | |
| RANLIB=: | |
| setup_options: >- | |
| --host=x86_64-pc-windows-msvc | |
| extra_packages: >- | |
| make | |
| exec_type: msys2 | |
| - label: Autotools-msys2-x86_64-msvc-x86_64-amalgamated_lib | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: MSYS | |
| setup_prefix: >- | |
| CC=cl | |
| LD=link | |
| AR="sh ar-lib lib" | |
| ARFLAGS=cr | |
| NM="dumpbin -symbols" | |
| STRIP=: | |
| RANLIB=: | |
| setup_options: >- | |
| --host=x86_64-pc-windows-msvc | |
| --enable-amalgamated-lib | |
| extra_packages: make | |
| exec_type: msys2 | |
| - label: Autotools-msys2-aarch64-msvc-aarch64-amalgamated_tools-static | |
| buildtool: autotools | |
| runner: windows-11-arm | |
| msystem: MSYS | |
| setup_prefix: >- | |
| CC=cl | |
| LD=link | |
| AR="sh ar-lib lib" | |
| ARFLAGS=cr | |
| NM="dumpbin -symbols" | |
| STRIP=: | |
| RANLIB=: | |
| setup_options: >- | |
| --host=aarch64-pc-windows-msvc | |
| --enable-amalgamated-tools | |
| --disable-shared | |
| extra_packages: make | |
| exec_type: msys2 | |
| - label: Autotools-msys2-msvc-vcpkg-libpng-libjpeg | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: MSYS | |
| setup_prefix: >- | |
| CC=cl | |
| LD=link | |
| AR="sh ar-lib lib" | |
| ARFLAGS=cr | |
| NM="dumpbin -symbols" | |
| STRIP=: | |
| RANLIB=: | |
| setup_options: >- | |
| --host=x86_64-pc-windows-msvc | |
| extra_packages: make | |
| vcpkg_packages: >- | |
| libpng | |
| libjpeg-turbo | |
| exec_type: msys2 | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| core-meson-ubuntu: | |
| needs: [coverage-meson] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 90 | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 4 | |
| matrix: | |
| include: | |
| - label: Meson-ubuntu-x86_64-clang | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| extra_packages: >- | |
| meson | |
| clang | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-no-tools | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| -Dimg2sixel=disabled | |
| -Dsixel2png=disabled | |
| extra_packages: >- | |
| meson | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-musl | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=musl-gcc | |
| extra_packages: >- | |
| meson | |
| musl-tools | |
| exec_type: bash | |
| - label: Meson-ubuntu-24.04-aarch64-amalgamated_lib | |
| buildtool: meson | |
| runner: ubuntu-24.04-arm | |
| setup_prefix: >- | |
| CC=gcc-14 | |
| setup_options: >- | |
| -Damalgamated_lib=true | |
| extra_packages: >- | |
| meson | |
| gcc-14 | |
| exec_type: bash | |
| - label: Meson-ubuntu-24.04-aarch64-amalgamated_tools | |
| buildtool: meson | |
| runner: ubuntu-24.04-arm | |
| setup_prefix: >- | |
| CC=gcc-14 | |
| setup_options: >- | |
| -Damalgamated_tools=true | |
| extra_packages: >- | |
| meson | |
| gcc-14 | |
| exec_type: bash | |
| - label: Meson-ubuntu-i686-unity | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=gcc | |
| CFLAGS="-m32" | |
| LDFLAGS="-m32" | |
| PKG_CONFIG_LIBDIR=/usr/lib/i386-linux-gnu/pkgconfig | |
| PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig | |
| setup_options: >- | |
| -Dunity=on | |
| extra_packages: >- | |
| meson | |
| gcc-multilib | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| core-meson-macos: | |
| needs: [core-meson-ubuntu] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 90 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - label: Meson-macos-x86_64-amalgamated_lib-amalgamated_tools | |
| buildtool: meson | |
| runner: macos-15-intel | |
| setup_options: >- | |
| -Damalgamated_lib=true | |
| -Damalgamated_tools=true | |
| extra_packages: >- | |
| meson | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| core-meson-msys2-variants: | |
| needs: [core-meson-ubuntu] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 90 | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 1 | |
| matrix: | |
| include: | |
| - label: Meson-msys2-mingw64-no-tools | |
| buildtool: meson | |
| runner: windows-latest | |
| msystem: MINGW64 | |
| setup_prefix: >- | |
| CC=gcc | |
| setup_options: >- | |
| -Dimg2sixel=disabled | |
| -Dsixel2png=disabled | |
| extra_packages: >- | |
| mingw-w64-x86_64-meson | |
| mingw-w64-x86_64-toolchain | |
| exec_type: msys2 | |
| - label: Meson-msys2-clang64 | |
| buildtool: meson | |
| runner: windows-latest | |
| msystem: CLANG64 | |
| setup_prefix: >- | |
| CC=clang | |
| extra_packages: >- | |
| mingw-w64-clang-x86_64-meson | |
| mingw-w64-clang-x86_64-toolchain | |
| exec_type: msys2 | |
| - label: Meson-msys2-mingw32-unity | |
| buildtool: meson | |
| runner: windows-latest | |
| msystem: MINGW32 | |
| setup_prefix: >- | |
| CC=gcc | |
| setup_options: >- | |
| -Dunity=on | |
| exec_type: msys2 | |
| extra_packages: >- | |
| mingw-w64-i686-meson | |
| mingw-w64-i686-toolchain | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| core-meson-cygwin: | |
| needs: [coverage-meson] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 90 | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 1 | |
| matrix: | |
| include: | |
| - label: Meson-cygwin64-gcc-unity | |
| buildtool: meson | |
| runner: windows-latest | |
| setup_prefix: >- | |
| CC=gcc | |
| setup_options: >- | |
| -Dunity=on | |
| extra_packages: >- | |
| meson | |
| gcc-core | |
| exec_type: cygwin | |
| - label: Meson-cygwin64-gcc-amalgamated_lib | |
| buildtool: meson | |
| runner: windows-latest | |
| setup_prefix: >- | |
| CC=gcc | |
| setup_options: >- | |
| -Damalgamated_lib=true | |
| extra_packages: >- | |
| meson | |
| gcc-core | |
| exec_type: cygwin | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| core-meson-msvc_abi: | |
| needs: [coverage-meson] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 90 | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 4 | |
| matrix: | |
| include: | |
| - label: Meson-cmd-x86_64-msvc-x86_64-unity | |
| buildtool: meson | |
| runner: windows-latest | |
| timeout_minutes: 90 | |
| setup_options: >- | |
| -Dunity=on | |
| exec_type: cmd | |
| - label: Meson-cmd-aarch64-msvc-aarch64-unity | |
| buildtool: meson | |
| runner: windows-11-arm | |
| setup_options: >- | |
| -Dunity=on | |
| exec_type: cmd | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| distcheck: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-24.04-aarch64-distcheck | |
| buildtool: autotools | |
| runner: ubuntu-24.04-arm | |
| check_target: distcheck | |
| exec_type: bash | |
| - label: Meson-ubuntu-24.04-aarch64-distcheck | |
| buildtool: meson | |
| runner: ubuntu-24.04-arm | |
| check_target: dist | |
| extra_packages: >- | |
| meson | |
| ninja-build | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-distcheck | |
| buildtool: autotools | |
| runner: macos-latest | |
| check_target: distcheck | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-distcheck | |
| buildtool: meson | |
| runner: macos-latest | |
| check_target: dist | |
| extra_packages: >- | |
| meson | |
| exec_type: bash | |
| - label: Autotools-msys2-clang64-distcheck | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: CLANG64 | |
| setup_prefix: >- | |
| CC=clang | |
| extra_packages: >- | |
| make | |
| mingw-w64-clang-x86_64-toolchain | |
| check_target: distcheck | |
| exec_type: msys2 | |
| - label: Meson-cmd-x86_64-msvc-x86_64-distcheck | |
| buildtool: meson | |
| runner: windows-latest | |
| check_target: dist | |
| exec_type: cmd | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| coveralls: | |
| needs: [coverage-autotools, coverage-meson, coverage-autotools-cygwin64-msvc, emscripten-coverage, python-coverage, ruby-coverage, perl-coverage, php-coverage] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Finalize Coveralls | |
| id: coveralls_finalize | |
| continue-on-error: true | |
| uses: coverallsapp/github-action@v2 | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| parallel-finished: true | |
| - name: Wait before Coveralls retry (finalize) | |
| if: ${{ steps.coveralls_finalize.outcome == 'failure' }} | |
| run: sleep 5 | |
| - name: Finalize Coveralls (retry) | |
| if: ${{ steps.coveralls_finalize.outcome == 'failure' }} | |
| uses: coverallsapp/github-action@v2 | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| parallel-finished: true | |
| asan-ubsan-lsan-ubuntu: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| env: | |
| UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1:report_error_type=1 | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-clang-ASan-UBSan-use-after-scope | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-sanitizer=address,undefined | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| extra_packages: >- | |
| clang | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-clang-ASan-UBSan-use-after-scope | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --buildtype=debugoptimized | |
| -Db_sanitize=address,undefined | |
| -Db_lundef=false | |
| -Db_ndebug=false | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| extra_packages: >- | |
| meson | |
| clang | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-clang-ASan-UBSan-use-after-scope-lcms2 | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-sanitizer=address,undefined | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --without-webp | |
| --without-librsvg | |
| --with-lcms2 | |
| extra_packages: >- | |
| meson | |
| clang | |
| liblcms2-dev | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-clang-ASan-UBSan-use-after-scope-lcms2 | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --buildtype=debugoptimized | |
| -Db_sanitize=address,undefined | |
| -Db_lundef=false | |
| -Db_ndebug=false | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| -Dwebp=disabled | |
| -Dlibrsvg=disabled | |
| -Dlcms2=enabled | |
| extra_packages: >- | |
| meson | |
| clang | |
| liblcms2-dev | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-clang-ASan-UBSan-use-after-scope-png-jpeg-tiff-webp-svg | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-sanitizer=address,undefined | |
| --with-png | |
| --with-jpeg | |
| --with-tiff | |
| --with-webp | |
| --with-librsvg | |
| --without-lcms2 | |
| extra_packages: >- | |
| meson | |
| clang | |
| libpng-dev | |
| libjpeg-dev | |
| libtiff-dev | |
| libwebp-dev | |
| librsvg2-dev | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-clang-ASan-UBSan-use-after-scope-png-jpeg-tiff-webp-svg | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --buildtype=debugoptimized | |
| -Db_sanitize=address,undefined | |
| -Db_lundef=false | |
| -Db_ndebug=false | |
| -Dpng=enabled | |
| -Djpeg=enabled | |
| -Dtiff=enabled | |
| -Dwebp=enabled | |
| -Dlibrsvg=enabled | |
| -Dlcms2=disabled | |
| extra_packages: >- | |
| meson | |
| clang | |
| libpng-dev | |
| libjpeg-dev | |
| libtiff-dev | |
| libwebp-dev | |
| librsvg2-dev | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-clang-ASan-UBSan-use-after-scope-png-jpeg-tiff-webp-svg-lcms2 | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-sanitizer=address,undefined | |
| --with-png | |
| --with-jpeg | |
| --with-tiff | |
| --with-webp | |
| --with-librsvg | |
| --with-lcms2 | |
| extra_packages: >- | |
| meson | |
| clang | |
| libpng-dev | |
| libjpeg-dev | |
| libtiff-dev | |
| libwebp-dev | |
| librsvg2-dev | |
| liblcms2-dev | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-clang-ASan-UBSan-use-after-scope-png-jpeg-tiff-webp-svg-lcms2 | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --buildtype=debugoptimized | |
| -Db_sanitize=address,undefined | |
| -Db_lundef=false | |
| -Db_ndebug=false | |
| -Dpng=enabled | |
| -Djpeg=enabled | |
| -Dtiff=enabled | |
| -Dwebp=enabled | |
| -Dlibrsvg=enabled | |
| -Dlcms2=enabled | |
| extra_packages: >- | |
| meson | |
| clang | |
| libpng-dev | |
| libjpeg-dev | |
| libtiff-dev | |
| libwebp-dev | |
| librsvg2-dev | |
| liblcms2-dev | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-ASan-UBSan-use-after-scope-gdk-pixbuf2 | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-sanitizer=address,undefined | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --with-gdk-pixbuf2 | |
| extra_packages: >- | |
| clang | |
| libgdk-pixbuf2.0-dev | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-ASan-UBSan-use-after-scope-gdk-pixbuf2 | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --buildtype=debugoptimized | |
| -Db_sanitize=address,undefined | |
| -Db_lundef=false | |
| -Db_ndebug=false | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| -Dgdk_pixbuf2=enabled | |
| extra_packages: >- | |
| meson | |
| clang | |
| libgdk-pixbuf2.0-dev | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-ASan-UBSan-use-after-scope-GD-no-aborttrace | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-sanitizer=address,undefined | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --with-gd | |
| --disable-abort-trace | |
| extra_packages: >- | |
| clang | |
| libgd-dev | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-ASan-UBSan-use-after-scope-GD-no-aborttrace | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --buildtype=debugoptimized | |
| -Db_sanitize=address,undefined | |
| -Db_lundef=false | |
| -Db_ndebug=false | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| -Dgd=enabled | |
| -Dabort_trace=disabled | |
| extra_packages: >- | |
| meson | |
| clang | |
| libgd-dev | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| asan-ubsan-lsan-macos: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| env: | |
| UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1:report_error_type=1 | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-macos-aarch64-ASan-UBSan-use-after-scope-gdk-pixbuf2 | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-sanitizer=address,undefined | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --with-gdk-pixbuf2 | |
| extra_packages: >- | |
| gdk-pixbuf | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-ASan-UBSan-use-after-scope-gdk-pixbuf2 | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --buildtype=debugoptimized | |
| -Db_sanitize=address,undefined | |
| -Db_lundef=false | |
| -Db_ndebug=false | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| -Dgdk_pixbuf2=enabled | |
| extra_packages: >- | |
| meson | |
| gdk-pixbuf | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-ASan-UBSan-use-after-scope-GD | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-sanitizer=address,undefined | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --with-gd | |
| extra_packages: >- | |
| gd | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-ASan-UBSan-use-after-scope-GD | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --buildtype=debugoptimized | |
| -Db_sanitize=address,undefined | |
| -Db_lundef=false | |
| -Db_ndebug=false | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| -Dgd=enabled | |
| extra_packages: >- | |
| meson | |
| gd | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| asan-ubsan-lsan-msys2-clang64: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| env: | |
| UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1:report_error_type=1 | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-msys2-clang64-ASan-UBSan-use-after-scope | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: CLANG64 | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-sanitizer=address,undefined | |
| extra_packages: >- | |
| make | |
| mingw-w64-clang-x86_64-toolchain | |
| exec_type: msys2 | |
| - label: Meson-msys2-clang64-ASan-UBSan-use-after-scope | |
| buildtool: meson | |
| runner: windows-latest | |
| msystem: CLANG64 | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --buildtype=debugoptimized | |
| -Db_sanitize=address,undefined | |
| -Db_lundef=false | |
| -Db_ndebug=false | |
| extra_packages: >- | |
| mingw-w64-clang-x86_64-meson | |
| mingw-w64-clang-x86_64-toolchain | |
| exec_type: msys2 | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| msan: | |
| needs: [asan-ubsan-lsan-ubuntu, asan-ubsan-lsan-macos, asan-ubsan-lsan-msys2-clang64] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-clang-MSan | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_options: >- | |
| CC=clang | |
| --enable-sanitizer=memory | |
| extra_packages: >- | |
| clang | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-clang-MSan | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --buildtype=debugoptimized | |
| -Db_sanitize=memory | |
| -Db_lundef=false | |
| -Db_ndebug=false | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| extra_packages: >- | |
| meson | |
| clang | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| tsan: | |
| needs: [asan-ubsan-lsan-ubuntu, asan-ubsan-lsan-macos, asan-ubsan-lsan-msys2-clang64] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-clang-TSan | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-sanitizer=thread | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| extra_packages: >- | |
| clang | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-clang-TSan | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --buildtype=debugoptimized | |
| -Db_sanitize=thread | |
| -Db_lundef=false | |
| -Db_ndebug=false | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| extra_packages: >- | |
| meson | |
| clang | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-TSan | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --enable-sanitizer=thread | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-TSan | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_prefix: >- | |
| CC=clang | |
| setup_options: >- | |
| --buildtype=debugoptimized | |
| -Db_sanitize=thread | |
| -Db_lundef=false | |
| -Db_ndebug=false | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| extra_packages: >- | |
| meson | |
| gd | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| emscripten: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-aarch64-emscripten-static | |
| buildtool: autotools | |
| runner: ubuntu-24.04-arm | |
| setup_prefix: >- | |
| CFLAGS="-O1 -g" | |
| setup_options: >- | |
| --host=wasm32-unknown-emscripten | |
| --with-shebang-file="$PWD/build-aux/shebang/node" | |
| --disable-shared | |
| --without-libfetch | |
| extra_packages: >- | |
| nodejs | |
| exec_type: bash | |
| - label: Meson-ubuntu-aarch64-emscripten-static | |
| buildtool: meson | |
| runner: ubuntu-24.04-arm | |
| setup_options: >- | |
| --cross-file build-aux/meson-cross/emscripten | |
| -Ddefault_library=static | |
| -Dfetch=disabled | |
| extra_packages: >- | |
| meson | |
| nodejs | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-emscripten-static | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_prefix: >- | |
| CFLAGS="-O1 -g" | |
| setup_options: >- | |
| --host=wasm32-unknown-emscripten | |
| --with-shebang-file="$PWD/build-aux/shebang/node" | |
| --disable-shared | |
| --without-libfetch | |
| extra_packages: >- | |
| node | |
| # This job runs many short Emscripten TAP scripts on macOS, where | |
| # the hosted runner can hit the per-user process limit even at | |
| # -j2 before the jobserver finishes draining skipped tests. | |
| make: make MAKEFLAGS=-j1 | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-emscripten-static | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_options: >- | |
| --cross-file build-aux/meson-cross/emscripten | |
| -Ddefault_library=static | |
| -Dfetch=disabled | |
| extra_packages: >- | |
| meson | |
| node | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| emscripten-ubsan: | |
| needs: [emscripten] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-aarch64-emscripten-ubsan-static | |
| buildtool: autotools | |
| runner: ubuntu-24.04-arm | |
| setup_prefix: >- | |
| CC=emcc | |
| setup_options: >- | |
| --host=wasm32-unknown-emscripten | |
| --with-shebang-file="$PWD/build-aux/shebang/node" | |
| --enable-sanitizer=undefined | |
| --disable-shared | |
| --without-libfetch | |
| extra_packages: >- | |
| nodejs | |
| exec_type: bash | |
| - label: Meson-ubuntu-aarch64-emscripten-ubsan-static | |
| buildtool: meson | |
| runner: ubuntu-24.04-arm | |
| setup_options: >- | |
| --cross-file build-aux/meson-cross/emscripten-no-threads | |
| -Ddefault_library=static | |
| -Dfetch=disabled | |
| -Doptimization=1 | |
| -Db_sanitize=undefined | |
| -Db_ndebug=false | |
| extra_packages: >- | |
| meson | |
| nodejs | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-emscripten-ubsan-static | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_options: >- | |
| --host=wasm32-unknown-emscripten | |
| --with-shebang-file="$PWD/build-aux/shebang/node" | |
| --enable-sanitizer=undefined | |
| --disable-shared | |
| --without-libfetch | |
| extra_packages: >- | |
| node | |
| exec_type: bash | |
| # On macOS Emscripten tests spawn node through the shebang, and | |
| # the hosted runner can hit the per-user process limit even at | |
| # modest parallelism. | |
| make: make MAKEFLAGS=-j1 | |
| - label: Meson-macos-aarch64-emscripten-ubsan-static | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_options: >- | |
| --cross-file build-aux/meson-cross/emscripten-no-threads | |
| -Ddefault_library=static | |
| -Dfetch=disabled | |
| -Doptimization=1 | |
| -Db_sanitize=undefined | |
| -Db_ndebug=false | |
| extra_packages: >- | |
| meson | |
| node | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| emscripten-coverage: | |
| needs: [emscripten] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-aarch64-emscripten-coverage | |
| buildtool: autotools | |
| runner: ubuntu-24.04-arm | |
| setup_prefix: >- | |
| export LLVM_PROFILE_FILE="$PWD/pgo/default-%p.profraw"; | |
| CC=emcc CFLAGS="-O0 -g -fprofile-instr-generate -fcoverage-mapping" LDFLAGS="-fprofile-instr-generate -g" | |
| setup_options: >- | |
| --host=wasm32-unknown-emscripten | |
| --with-shebang-file="$PWD/build-aux/shebang/node" | |
| --disable-shared | |
| --enable-gcov | |
| --without-libfetch | |
| extra_packages: >- | |
| nodejs | |
| lcov | |
| llvm | |
| exec_type: bash | |
| - label: Meson-ubuntu-aarch64-emscripten-coverage | |
| buildtool: meson | |
| runner: ubuntu-24.04-arm | |
| setup_prefix: >- | |
| export LLVM_PROFILE_FILE="$PWD/pgo/default-%p.profraw"; | |
| CFLAGS="-O0 -g -fprofile-instr-generate -fcoverage-mapping" LDFLAGS="-fprofile-instr-generate -g" | |
| setup_options: >- | |
| --cross-file build-aux/meson-cross/emscripten | |
| -Ddefault_library=static | |
| -Db_coverage=true | |
| -Dfetch=disabled | |
| extra_packages: >- | |
| meson | |
| nodejs | |
| lcov | |
| llvm | |
| exec_type: bash | |
| - label: Autotools-ubuntu-aarch64-emscripten-coverage-png-jpeg | |
| buildtool: autotools | |
| runner: ubuntu-24.04-arm | |
| setup_prefix: >- | |
| export LLVM_PROFILE_FILE="$PWD/pgo/default-%p.profraw"; | |
| CC=emcc CFLAGS="-O0 -g -fprofile-instr-generate -fcoverage-mapping" LDFLAGS="-fprofile-instr-generate -g" | |
| setup_options: >- | |
| --host=wasm32-unknown-emscripten | |
| --with-shebang-file="$PWD/build-aux/shebang/node" | |
| --disable-shared | |
| --enable-gcov | |
| --with-png | |
| --with-jpeg | |
| --without-libfetch | |
| extra_packages: >- | |
| nodejs | |
| lcov | |
| llvm | |
| exec_type: bash | |
| - label: Meson-ubuntu-aarch64-emscripten-coverage-png-jpeg | |
| buildtool: meson | |
| runner: ubuntu-24.04-arm | |
| setup_prefix: >- | |
| export LLVM_PROFILE_FILE="$PWD/pgo/default-%p.profraw"; | |
| CFLAGS="-O0 -g -fprofile-instr-generate -fcoverage-mapping" LDFLAGS="-fprofile-instr-generate -g" | |
| setup_options: >- | |
| --cross-file build-aux/meson-cross/emscripten | |
| -Ddefault_library=static | |
| -Db_coverage=true | |
| -Dfetch=disabled | |
| -Dpng=enabled | |
| -Djpeg=enabled | |
| extra_packages: >- | |
| meson | |
| nodejs | |
| lcov | |
| llvm | |
| exec_type: bash | |
| - label: Autotools-ubuntu-aarch64-emscripten-coverage-libfetch | |
| buildtool: autotools | |
| runner: ubuntu-24.04-arm | |
| setup_prefix: >- | |
| export LLVM_PROFILE_FILE="$PWD/pgo/default-%p.profraw"; | |
| CC=emcc CFLAGS="-O0 -g -fprofile-instr-generate -fcoverage-mapping" LDFLAGS="-fprofile-instr-generate -g" | |
| setup_options: >- | |
| --host=wasm32-unknown-emscripten | |
| --with-shebang-file="$PWD/build-aux/shebang/node" | |
| --disable-shared | |
| --enable-gcov | |
| --without-libcurl | |
| --with-libfetch | |
| extra_packages: >- | |
| nodejs | |
| lcov | |
| llvm | |
| exec_type: bash | |
| - label: Meson-ubuntu-aarch64-emscripten-coverage-libfetch | |
| buildtool: meson | |
| runner: ubuntu-24.04-arm | |
| setup_prefix: >- | |
| export LLVM_PROFILE_FILE="$PWD/pgo/default-%p.profraw"; | |
| CFLAGS="-O0 -g -fprofile-instr-generate -fcoverage-mapping" LDFLAGS="-fprofile-instr-generate -g" | |
| setup_options: >- | |
| --cross-file build-aux/meson-cross/emscripten | |
| -Ddefault_library=static | |
| -Db_coverage=true | |
| -Dcurl=disabled | |
| -Dfetch=enabled | |
| extra_packages: >- | |
| meson | |
| nodejs | |
| lcov | |
| llvm | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-emscripten-coverage | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_prefix: >- | |
| export LLVM_PROFILE_FILE="$PWD/pgo/default-%p.profraw"; | |
| CFLAGS="-O0 -g -fprofile-instr-generate -fcoverage-mapping" LDFLAGS="-fprofile-instr-generate -g" | |
| setup_options: >- | |
| --host=wasm32-unknown-emscripten | |
| --with-shebang-file="$PWD/build-aux/shebang/node" | |
| --disable-shared | |
| --enable-gcov | |
| --without-libfetch | |
| extra_packages: >- | |
| node | |
| gcovr | |
| exec_type: bash | |
| # On macOS Emscripten tests spawn node through the shebang, and | |
| # coverage instrumentation keeps each process alive longer. | |
| make: make MAKEFLAGS=-j1 | |
| - label: Meson-macos-aarch64-emscripten-coverage | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_prefix: >- | |
| export LLVM_PROFILE_FILE="$PWD/pgo/default-%p.profraw"; | |
| CFLAGS="-O0 -g -fprofile-instr-generate -fcoverage-mapping" LDFLAGS="-fprofile-instr-generate -g" | |
| setup_options: >- | |
| --cross-file build-aux/meson-cross/emscripten | |
| -Ddefault_library=static | |
| -Db_coverage=true | |
| -Dfetch=disabled | |
| extra_packages: >- | |
| meson | |
| node | |
| gcovr | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| cosmopolitan: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-aarch64-cosmopolitan-static | |
| buildtool: autotools | |
| runner: ubuntu-24.04-arm | |
| setup_prefix: >- | |
| CC=cosmocc | |
| LD=cosmocc | |
| AR=cosmoar | |
| RANLIB=cosmoranlib | |
| INSTALL=cosmoinstall | |
| setup_options: >- | |
| --disable-shared | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --without-webp | |
| --without-librsvg | |
| --without-lcms2 | |
| --without-libcurl | |
| exec_type: bash | |
| - label: Meson-ubuntu-aarch64-cosmopolitan-static | |
| buildtool: meson | |
| runner: ubuntu-24.04-arm | |
| setup_prefix: >- | |
| CC=cosmocc-meson | |
| LD=cosmocc-meson | |
| AR=cosmoar | |
| RANLIB=cosmoranlib | |
| INSTALL=cosmoinstall | |
| setup_options: >- | |
| -Ddefault_library=static | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| -Dwebp=disabled | |
| -Dlibrsvg=disabled | |
| -Dlcms2=disabled | |
| -Dcurl=disabled | |
| check_target: | |
| test --wrapper "$PWD"/build-aux/ape-wrapper | |
| extra_packages: >- | |
| meson | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-cosmopolitan-static | |
| buildtool: autotools | |
| runner: ubuntu-24.04 | |
| setup_prefix: >- | |
| CC=cosmocc | |
| LD=cosmocc | |
| AR=cosmoar | |
| RANLIB=cosmoranlib | |
| INSTALL=cosmoinstall | |
| setup_options: >- | |
| --disable-shared | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --without-webp | |
| --without-librsvg | |
| --without-lcms2 | |
| --without-libcurl | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-cosmopolitan-static | |
| buildtool: meson | |
| runner: ubuntu-24.04 | |
| setup_prefix: >- | |
| CC=cosmocc-meson | |
| LD=cosmocc-meson | |
| AR=cosmoar | |
| RANLIB=cosmoranlib | |
| INSTALL=cosmoinstall | |
| setup_options: >- | |
| -Ddefault_library=static | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| -Dwebp=disabled | |
| -Dlibrsvg=disabled | |
| -Dlcms2=disabled | |
| -Dcurl=disabled | |
| check_target: | |
| test --wrapper "$PWD"/build-aux/ape-wrapper | |
| extra_packages: >- | |
| meson | |
| exec_type: bash | |
| - label: Autotools-macos-aarch64-cosmopolitan-static | |
| buildtool: autotools | |
| runner: macos-latest | |
| setup_prefix: >- | |
| CC=cosmocc | |
| LD=cosmocc | |
| AR=cosmoar | |
| RANLIB=cosmoranlib | |
| INSTALL=cosmoinstall | |
| setup_options: >- | |
| --disable-shared | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --without-webp | |
| --without-librsvg | |
| --without-lcms2 | |
| --without-libcurl | |
| --without-coregraphics | |
| --disable-quicklook-extension | |
| --disable-quicklook-preview | |
| --disable-appkit | |
| exec_type: bash | |
| - label: Meson-macos-aarch64-cosmopolitan-static | |
| buildtool: meson | |
| runner: macos-latest | |
| setup_prefix: >- | |
| CC=cosmocc-meson | |
| LD=cosmocc-meson | |
| AR=cosmoar | |
| RANLIB=cosmoranlib | |
| INSTALL=cosmoinstall | |
| setup_options: >- | |
| -Ddefault_library=static | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| -Dwebp=disabled | |
| -Dlibrsvg=disabled | |
| -Dlcms2=disabled | |
| -Dcurl=disabled | |
| -Dcoregraphics=disabled | |
| -Dquicklook_extension=disabled | |
| -Dquicklook_preview=disabled | |
| -Dappkit=disabled | |
| check_target: | |
| test --wrapper "$PWD"/build-aux/ape-wrapper | |
| extra_packages: >- | |
| meson | |
| exec_type: bash | |
| - label: Autotools-macos-x86_64-cosmopolitan-static | |
| buildtool: autotools | |
| runner: macos-15-intel | |
| setup_prefix: >- | |
| CC=cosmocc | |
| LD=cosmocc | |
| AR=cosmoar | |
| RANLIB=cosmoranlib | |
| INSTALL=cosmoinstall | |
| setup_options: >- | |
| --disable-shared | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --without-webp | |
| --without-librsvg | |
| --without-lcms2 | |
| --without-libcurl | |
| --without-coregraphics | |
| --disable-quicklook-extension | |
| --disable-quicklook-preview | |
| --disable-appkit | |
| exec_type: bash | |
| - label: Meson-macos-x86_64-cosmopolitan-static | |
| buildtool: meson | |
| runner: macos-15-intel | |
| setup_prefix: >- | |
| CC=cosmocc-meson | |
| LD=cosmocc-meson | |
| AR=cosmoar | |
| RANLIB=cosmoranlib | |
| INSTALL=cosmoinstall | |
| setup_options: >- | |
| -Ddefault_library=static | |
| -Dpng=disabled | |
| -Djpeg=disabled | |
| -Dtiff=disabled | |
| -Dwebp=disabled | |
| -Dlibrsvg=disabled | |
| -Dlcms2=disabled | |
| -Dcurl=disabled | |
| -Dcoregraphics=disabled | |
| -Dquicklook_extension=disabled | |
| -Dquicklook_preview=disabled | |
| -Dappkit=disabled | |
| check_target: | |
| test --wrapper "$PWD"/build-aux/ape-wrapper | |
| extra_packages: >- | |
| meson | |
| exec_type: bash | |
| - label: Autotools-msys2-msys-cosmopolitan-static | |
| buildtool: autotools | |
| runner: windows-latest | |
| msystem: MSYS | |
| setup_prefix: >- | |
| CC=cosmocc | |
| LD=cosmocc | |
| AR=cosmoar | |
| RANLIB=cosmoranlib | |
| INSTALL=cosmoinstall | |
| setup_options: >- | |
| --disable-shared | |
| --without-png | |
| --without-jpeg | |
| --without-tiff | |
| --without-webp | |
| --without-librsvg | |
| --without-lcms2 | |
| --without-libcurl | |
| --disable-wiccodec | |
| extra_packages: >- | |
| unzip | |
| make | |
| exec_type: msys2 | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| - name: Verify Cosmopolitan fat binaries (bash) | |
| if: ${{ matrix.exec_type == 'bash' }} | |
| shell: bash | |
| run: | | |
| set -euxo pipefail | |
| if [ "${{ matrix.buildtool }}" = "meson" ]; then | |
| img2sixel_bin="$PWD/builddir/converters/img2sixel" | |
| sixel2png_bin="$PWD/builddir/converters/sixel2png" | |
| lsqa_bin="$PWD/builddir/assessment/lsqa" | |
| else | |
| img2sixel_bin="$PWD/converters/img2sixel" | |
| sixel2png_bin="$PWD/converters/sixel2png" | |
| lsqa_bin="$PWD/assessment/lsqa" | |
| fi | |
| verify_fat_binary() { | |
| bin_path="$1" | |
| dbg_path="${bin_path}.com.dbg" | |
| arm_path="${bin_path}.aarch64.elf" | |
| test -f "$bin_path" | |
| test -f "$dbg_path" | |
| test -f "$arm_path" | |
| test "$(head -n1 "$bin_path")" = "MZqFpD='" | |
| bin_desc="$(file "$bin_path")" | |
| dbg_desc="$(file "$dbg_path")" | |
| arm_desc="$(file "$arm_path")" | |
| case "$bin_desc" in | |
| *DOS/MBR*|*COM*|*MZ*) | |
| ;; | |
| *) | |
| echo "::error::unexpected APE description: $bin_desc" | |
| exit 1 | |
| ;; | |
| esac | |
| case "$dbg_desc" in | |
| *ELF*64-bit*LSB*executable*x86-64*) | |
| ;; | |
| *) | |
| echo "::error::unexpected x86_64 sidecar description: $dbg_desc" | |
| exit 1 | |
| ;; | |
| esac | |
| case "$arm_desc" in | |
| *ELF*64-bit*LSB*executable*ARM*aarch64*) | |
| ;; | |
| *) | |
| echo "::error::unexpected aarch64 sidecar description: $arm_desc" | |
| exit 1 | |
| ;; | |
| esac | |
| } | |
| verify_fat_binary "$img2sixel_bin" | |
| verify_fat_binary "$sixel2png_bin" | |
| verify_fat_binary "$lsqa_bin" | |
| sh "$img2sixel_bin" --version >/dev/null | |
| sh "$sixel2png_bin" --version >/dev/null | |
| sh "$lsqa_bin" --help >/dev/null | |
| pcc: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-pcc-static | |
| buildtool: autotools | |
| runner: ubuntu-24.04 | |
| setup_prefix: >- | |
| CC=pcc | |
| setup_options: >- | |
| --disable-shared | |
| extra_packages: >- | |
| pcc | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-pcc-shared | |
| buildtool: autotools | |
| runner: ubuntu-24.04 | |
| setup_prefix: >- | |
| CC=pcc | |
| extra_packages: >- | |
| pcc | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-pcc-shared-png-jpeg-tiff-webp | |
| buildtool: autotools | |
| runner: ubuntu-24.04 | |
| setup_prefix: >- | |
| CC=pcc | |
| setup_options: >- | |
| --with-png | |
| --with-jpeg | |
| --with-tiff | |
| --with-webp | |
| extra_packages: >- | |
| pcc | |
| libpng-dev | |
| libjpeg-dev | |
| libtiff-dev | |
| libwebp-dev | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-pcc-shared-gd | |
| buildtool: autotools | |
| runner: ubuntu-24.04 | |
| setup_prefix: >- | |
| CC=pcc | |
| setup_options: >- | |
| --with-gd | |
| extra_packages: >- | |
| pcc | |
| libgd-dev | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-pcc-shared-python | |
| buildtool: autotools | |
| runner: ubuntu-24.04 | |
| setup_prefix: >- | |
| CC=pcc | |
| setup_options: >- | |
| --enable-python | |
| extra_packages: >- | |
| pcc | |
| python3 | |
| python3-dev | |
| python3-pip | |
| python3-venv | |
| pip_packages: >- | |
| build | |
| pytest | |
| check_target: check-python | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-pcc-shared-ruby | |
| buildtool: autotools | |
| runner: ubuntu-24.04 | |
| setup_prefix: >- | |
| CC=pcc | |
| setup_options: >- | |
| --enable-ruby | |
| extra_packages: >- | |
| pcc | |
| ruby | |
| ruby-dev | |
| check_target: check-ruby | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-pcc-shared-perl | |
| buildtool: autotools | |
| runner: ubuntu-24.04 | |
| setup_prefix: >- | |
| CC=pcc | |
| setup_options: >- | |
| --enable-perl | |
| extra_packages: >- | |
| pcc | |
| perl | |
| cpanminus | |
| check_target: check-perl | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-pcc-shared-php | |
| buildtool: autotools | |
| runner: ubuntu-24.04 | |
| setup_prefix: >- | |
| CC=pcc | |
| setup_options: >- | |
| --enable-php | |
| extra_packages: >- | |
| pcc | |
| php-cli | |
| php-ffi | |
| php8.3-phpdbg | |
| check_target: check-php | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-pcc-static | |
| buildtool: meson | |
| runner: ubuntu-24.04 | |
| setup_prefix: >- | |
| CC=pcc-meson | |
| setup_options: >- | |
| -Ddefault_library=static | |
| extra_packages: >- | |
| pcc | |
| meson | |
| exec_type: bash | |
| - label: Meson-ubuntu-x86_64-pcc-shared | |
| buildtool: meson | |
| runner: ubuntu-24.04 | |
| setup_prefix: >- | |
| CC=pcc-meson | |
| extra_packages: >- | |
| pcc | |
| meson | |
| exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| winecheck: | |
| needs: [smoke] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-ubuntu-x86_64-mingw-w64-x86_64-win32-wine64-static | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| wineboot -u || :; | |
| CC=x86_64-w64-mingw32-gcc-win32 | |
| setup_options: >- | |
| --host=x86_64-w64-mingw32 | |
| --disable-shared | |
| extra_packages: >- | |
| wine | |
| gcc-mingw-w64-x86-64-win32 | |
| make | |
| make: MVK_CONFIG_LOG_LEVEL=0 WINEDEBUG=-all SIXEL_RUNTIME=wine make | |
| exec_type: bash | |
| - label: Autotools-ubuntu-x86_64-mingw-w64-x86_64-posix-wine64-static | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| setup_prefix: >- | |
| wineboot -u || :; | |
| cp /usr/x86_64-w64-mingw32/lib/libwinpthread-1.dll ~/.wine/drive_c/windows/system32/; | |
| CC=x86_64-w64-mingw32-gcc-posix | |
| setup_options: >- | |
| --host=x86_64-w64-mingw32 | |
| --disable-shared | |
| extra_packages: >- | |
| wine | |
| gcc-mingw-w64-x86-64-posix | |
| make | |
| make: MVK_CONFIG_LOG_LEVEL=0 WINEDEBUG=-all SIXEL_RUNTIME=wine make | |
| exec_type: bash | |
| # - label: Autotools-macos-aarch64-mingw-w64-x86_64-wine64_on_rosetta-static | |
| # buildtool: autotools | |
| # runner: macos-latest | |
| # setup_prefix: >- | |
| # command -v wine >/dev/null 2>&1 || | |
| # brew install --cask --skip-cask-deps wine@staging; | |
| # wineboot -u || :; | |
| # cp "$(find /opt/homebrew/Cellar/mingw-w64 -name toolchain-x86_64)"/x86_64-w64-mingw32/bin/libwinpthread-1.dll ~/.wine/drive_c/windows/system32/; | |
| # CC=x86_64-w64-mingw32-gcc | |
| # setup_options: >- | |
| # --host=x86_64-w64-mingw32 | |
| # --disable-shared | |
| # extra_packages: >- | |
| # mingw-w64 | |
| # make: MVK_CONFIG_LOG_LEVEL=0 WINEDEBUG=-all SIXEL_RUNTIME=wine make | |
| # exec_type: bash | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| solaris: | |
| # needs: [openbsd] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 1 | |
| matrix: | |
| include: | |
| - label: Autotools-solaris-11.4-x86_64 | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| version: '11.4' | |
| setup_options: >- | |
| --disable-dependency-tracking | |
| extra_packages: >- | |
| gnu-make | |
| gcc | |
| make: gmake | |
| exec_type: solaris-vm | |
| - label: Meson-solaris-11.4-x86_64 | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| version: '11.4' | |
| extra_packages: >- | |
| gcc | |
| meson | |
| exec_type: solaris-vm | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| omnios: | |
| needs: [freebsd] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 1 | |
| matrix: | |
| include: | |
| - label: Autotools-omnios-r151056-x86_64 | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| version: r151056 | |
| setup_options: >- | |
| --disable-dependency-tracking | |
| extra_packages: >- | |
| developer/gcc13 | |
| developer/build/gnu-make | |
| make: gmake | |
| exec_type: omnios-vm | |
| # - label: Meson-omnios-r151056-x86_64 | |
| # buildtool: meson | |
| # runner: ubuntu-latest | |
| # version: r151056 | |
| # extra_packages: >- | |
| # developer/gcc13 | |
| # runtime/python-313 | |
| # library/python-3/pip-313 | |
| # exec_type: omnios-vm | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - name: Configure git EOL | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: bash | |
| run: git config --global core.autocrlf false | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| # openindiana: | |
| # needs: [dragonflybsd] | |
| # name: ${{ matrix.label }} | |
| # runs-on: ${{ matrix.runner }} | |
| # strategy: | |
| # fail-fast: false | |
| # max-parallel: 1 | |
| # matrix: | |
| # include: | |
| # - label: Autotools-openindiana-202510-x86_64 | |
| # buildtool: autotools | |
| # runner: ubuntu-latest | |
| # version: '202510' | |
| # setup_options: >- | |
| # --disable-dependency-tracking | |
| # extra_packages: >- | |
| # developer/build/gnu-make | |
| # developer/gcc-13 | |
| # make: gmake | |
| # exec_type: openindiana-vm | |
| # | |
| # - label: Meson-openindiana-202510-x86_64 | |
| # buildtool: meson | |
| # runner: ubuntu-latest | |
| # version: '202510' | |
| # extra_packages: >- | |
| # developer/gcc-13 | |
| # developer/build/meson | |
| # developer/build/ninja | |
| # exec_type: openindiana-vm | |
| # | |
| # steps: | |
| # - name: Set Windows Defender ExclusionPath (Windows) | |
| # if: runner.os == 'Windows' | |
| # shell: pwsh | |
| # run: | | |
| # Add-MpPreference -ExclusionPath "C:\a" | |
| # | |
| # - name: Disable Windows Search Indexer (Windows) | |
| # if: runner.os == 'Windows' | |
| # shell: pwsh | |
| # run: | | |
| # Stop-Service WSearch | |
| # | |
| # - name: Disable Spotlight (macOS) | |
| # if: runner.os == 'macOS' | |
| # shell: bash | |
| # run: | | |
| # sudo mdutil -i off / || true | |
| # sudo mdutil -i off /System/Volumes/Data || true | |
| # | |
| # - name: Configure git EOL | |
| # if: ${{ runner.os == 'Windows' }} | |
| # shell: bash | |
| # run: git config --global core.autocrlf false | |
| # | |
| # - uses: actions/checkout@v6 | |
| # with: | |
| # fetch-depth: 1 | |
| # | |
| # - name: Run CI steps | |
| # uses: ./.github/actions/ci-steps | |
| # with: | |
| # matrix_json: ${{ toJSON(matrix) }} | |
| # github_token: ${{ secrets.GITHUB_TOKEN }} | |
| # codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| docker: | |
| needs: [coveralls] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| matrix: | |
| include: | |
| - label: Autotools-alpine-3.20-x86_64 | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| guest_packages: >- | |
| build-base | |
| coreutils | |
| findutils | |
| exec_type: alpine | |
| - label: Meson-alpine-3.20-x86_64 | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| guest_packages: >- | |
| build-base | |
| meson | |
| exec_type: alpine | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| haiku: | |
| needs: [netbsd] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| env: | |
| SIXEL_TEST_SKIP_HAIKU_PSD_TYSH_TRACE: 1 | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 1 | |
| matrix: | |
| include: | |
| - label: Autotools-haiku-r1beta5-x86-64 | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| cp_os: haiku | |
| cp_arch: x86-64 | |
| cp_version: r1beta5 | |
| extra_packages: >- | |
| make | |
| make: make | |
| exec_type: cross-platform-vms | |
| - label: Meson-haiku-r1beta5-x86-64 | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| cp_os: haiku | |
| cp_arch: x86-64 | |
| cp_version: r1beta5 | |
| check_target: test --num-processes 1 | |
| extra_packages: >- | |
| meson | |
| exec_type: cross-platform-vms | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| openbsd: | |
| needs: [freebsd] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 1 | |
| matrix: | |
| include: | |
| - label: Autotools-openbsd-7.8-x86-64 | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| cp_os: openbsd | |
| cp_arch: x86-64 | |
| cp_version: '7.8' | |
| extra_packages: >- | |
| gmake | |
| make: gmake | |
| exec_type: cross-platform-vms | |
| - label: Meson-openbsd-7.8-x86-64 | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| cp_os: openbsd | |
| cp_arch: x86-64 | |
| cp_version: '7.8' | |
| extra_packages: >- | |
| meson | |
| check_target: test --num-processes 1 --print-errorlogs | |
| exec_type: cross-platform-vms | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| freebsd: | |
| needs: [netbsd] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 2 | |
| matrix: | |
| include: | |
| - label: Autotools-freebsd-14.3-x86_64 | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| cp_os: freebsd | |
| cp_arch: x86-64 | |
| cp_version: '14.3' | |
| extra_packages: >- | |
| gmake | |
| make: gmake | |
| exec_type: cross-platform-vms | |
| - label: Meson-freebsd-14.3-x86_64-unity | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| cp_os: freebsd | |
| cp_arch: x86-64 | |
| cp_version: '14.3' | |
| setup_options: >- | |
| -Dunity=on | |
| extra_packages: >- | |
| meson | |
| exec_type: cross-platform-vms | |
| - label: Autotools-freebsd-14.3-x86_64-amalgamated_lib | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| cp_os: freebsd | |
| cp_arch: x86-64 | |
| cp_version: '14.3' | |
| setup_options: >- | |
| --enable-amalgamated-lib | |
| extra_packages: >- | |
| gmake | |
| make: gmake | |
| exec_type: cross-platform-vms | |
| - label: Meson-freebsd-14.3-x86_64-amalgamated_lib | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| cp_os: freebsd | |
| cp_arch: x86-64 | |
| cp_version: '14.3' | |
| setup_options: >- | |
| -Damalgamated_lib=true | |
| extra_packages: >- | |
| meson | |
| exec_type: cross-platform-vms | |
| # - label: Autotools-freebsd-14.3-aarch64 | |
| # buildtool: autotools | |
| # runner: ubuntu-latest | |
| # cp_os: freebsd | |
| # cp_arch: arm64 | |
| # cp_version: '14.3' | |
| # extra_packages: >- | |
| # gmake | |
| # make: gmake | |
| # exec_type: cross-platform-vms | |
| # | |
| # - label: Meson-freebsd-14.3-aarch64 | |
| # buildtool: meson | |
| # runner: ubuntu-latest | |
| # cp_os: freebsd | |
| # cp_arch: arm64 | |
| # cp_version: '14.3' | |
| # extra_packages: >- | |
| # meson | |
| # exec_type: cross-platform-vms | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| netbsd: | |
| needs: [dragonflybsd] | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 1 | |
| matrix: | |
| include: | |
| - label: Autotools-netbsd-10.1-x86_64 | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| cp_os: netbsd | |
| cp_arch: x86-64 | |
| cp_version: '10.1' | |
| extra_packages: >- | |
| gmake | |
| make: gmake | |
| exec_type: cross-platform-vms | |
| - label: Meson-netbsd-10.1-x86_64 | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| cp_os: netbsd | |
| cp_arch: x86-64 | |
| cp_version: '10.1' | |
| extra_packages: >- | |
| meson | |
| exec_type: cross-platform-vms | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| dragonflybsd: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 90 | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 1 | |
| matrix: | |
| include: | |
| - label: Autotools-dragonflybsd-6.4.2-x86-64 | |
| buildtool: autotools | |
| runner: ubuntu-latest | |
| version: '6.4.2' | |
| extra_packages: >- | |
| gmake | |
| make: gmake | |
| exec_type: dragonflybsd-vm | |
| - label: Meson-dragonflybsd-6.4.2-x86-64 | |
| buildtool: meson | |
| runner: ubuntu-latest | |
| version: '6.4.2' | |
| extra_packages: >- | |
| meson | |
| exec_type: dragonflybsd-vm | |
| steps: | |
| - name: Set Windows Defender ExclusionPath (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| try { | |
| Add-MpPreference -ExclusionPath "C:\a" -ErrorAction Stop | |
| } catch { | |
| Write-Warning "Windows Defender exclusion setup failed; continuing: $($_.Exception.Message)" | |
| } | |
| - name: Disable Windows Search Indexer (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| Stop-Service WSearch | |
| - name: Disable Spotlight (macOS) | |
| if: runner.os == 'macOS' | |
| shell: bash | |
| run: | | |
| sudo mdutil -i off / || true | |
| sudo mdutil -i off /System/Volumes/Data || true | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Run CI steps | |
| uses: ./.github/actions/ci-steps | |
| with: | |
| matrix_json: ${{ toJSON(matrix) }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
| # emacs Local Variables: | |
| # emacs mode: c | |
| # emacs tab-width: 2 | |
| # emacs indent-tabs-mode: nil | |
| # emacs End: | |
| # vim: set ft=yml et ts=4 sw=0 sts=-1 fdm=indent fdl=1: |