mirror of
https://github.com/nlohmann/json.git
synced 2026-10-28 16:55:41 +00:00
ubuntu.yml, macos.yml and windows.yml run about 155 jobs on every pull request, including those that change only the documentation. They now have a pull_request path filter: it starts with '**' and excludes the documentation, Markdown files, GitHub metadata, other workflows and the license files, so a new file runs them unless it is excluded on purpose. Pushes to develop, master and release/* are not filtered. The documentation jobs and the REUSE check move from ubuntu.yml to the new repository_checks.yml, which has no path filter and also runs tools/check_path_filters. That check keeps the three filters identical and fails when a file the compiler jobs keep mentions an excluded file. It found two: tools/check_build_options reads the Meson section of package_managers.md, and the swiftpm job builds the Swift example from the documentation; both are included in the filter. Signed-off-by: Niels Lohmann <mail@nlohmann.me>
79 lines
2.6 KiB
YAML
79 lines
2.6 KiB
YAML
name: Repository checks
|
|
|
|
# Checks that concern files the compiler workflows (ubuntu.yml, macos.yml,
|
|
# windows.yml) skip with their path filter: the documentation, the license
|
|
# information, and the path filter itself. This workflow has no path filter.
|
|
on:
|
|
push:
|
|
branches:
|
|
- develop
|
|
- master
|
|
- release/*
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
check_path_filters:
|
|
runs-on: ubuntu-26.04
|
|
steps:
|
|
- name: Harden Runner
|
|
uses: step-security/harden-runner@ccd8616d44fd3846e67624a50d5aad6d37bf2d25 # v2.22.1
|
|
with:
|
|
egress-policy: audit
|
|
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
with:
|
|
persist-credentials: false
|
|
- name: Check the path filters of the compiler workflows
|
|
run: python3 tools/check_path_filters/check_path_filters.py
|
|
|
|
ci_reuse_compliance:
|
|
runs-on: ubuntu-26.04
|
|
steps:
|
|
- name: Harden Runner
|
|
uses: step-security/harden-runner@ccd8616d44fd3846e67624a50d5aad6d37bf2d25 # v2.22.1
|
|
with:
|
|
egress-policy: audit
|
|
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
with:
|
|
persist-credentials: false
|
|
- name: Get latest CMake and ninja
|
|
uses: lukka/get-cmake@a89e43e22a96abafcd7a62db652a65ecd33052c9 # v4.4.4
|
|
- name: Run CMake
|
|
run: cmake -S . -B build -DJSON_CI=On
|
|
- name: Build
|
|
run: cmake --build build --target ci_reuse_compliance
|
|
|
|
ci_test_documentation:
|
|
runs-on: ubuntu-26.04
|
|
strategy:
|
|
matrix:
|
|
target: [ci_test_examples, ci_test_build_documentation, ci_test_documentation_mermaid]
|
|
steps:
|
|
- name: Harden Runner
|
|
uses: step-security/harden-runner@ccd8616d44fd3846e67624a50d5aad6d37bf2d25 # v2.22.1
|
|
with:
|
|
egress-policy: audit
|
|
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
with:
|
|
persist-credentials: false
|
|
# the git-revision-date-localized plugin needs the history; a shallow clone makes the strict build fail
|
|
fetch-depth: ${{ matrix.target == 'ci_test_build_documentation' && '0' || '1' }}
|
|
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
|
|
if: matrix.target == 'ci_test_documentation_mermaid'
|
|
with:
|
|
node-version: 24
|
|
- name: Run CMake
|
|
run: cmake -S . -B build -DJSON_CI=On
|
|
- name: Build
|
|
run: cmake --build build --target ${{ matrix.target }}
|