fix: Ignore trailing '#' in meta-schema URLs (#497) #1143
This file contains 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: ci | |
on: | |
pull_request: {} | |
push: | |
branches: | |
- master | |
jobs: | |
commitsar: | |
name: Verify commit messages | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: aevea/[email protected] | |
pre-commit: | |
name: Generic pre-commit checks | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.11 | |
- run: pip install pre-commit | |
- run: pre-commit run --all-files | |
working-directory: ./bindings/python | |
test-stable: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22.04, macos-12, windows-2022] | |
draft: [draft201909, draft202012] | |
name: Test ${{ matrix.draft }} (stable) on ${{ matrix.os}} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
workspaces: jsonschema | |
cache-all-crates: "true" | |
key: ${{ matrix.os }}-${{ matrix.draft }} | |
- run: cargo test --no-fail-fast --features ${{ matrix.draft }} | |
working-directory: ./jsonschema | |
build-wasm32: | |
strategy: | |
fail-fast: false | |
matrix: | |
target: ['wasm32-unknown-unknown'] | |
name: Build on ${{ matrix.target }} | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
targets: ${{ matrix.target }} | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
workspaces: jsonschema | |
cache-all-crates: "true" | |
- run: cargo build --target ${{ matrix.target }} --no-default-features --features=cli | |
working-directory: ./jsonschema | |
coverage: | |
name: Run test coverage | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
workspaces: jsonschema | |
cache-all-crates: "true" | |
- name: Install cargo-llvm-cov | |
uses: taiki-e/install-action@cargo-llvm-cov | |
- name: Run tests | |
run: cargo llvm-cov --no-report --all-features | |
working-directory: ./jsonschema | |
- name: Generate coverage reports | |
run: cargo llvm-cov report --lcov --output-path lcov.info | |
working-directory: ./jsonschema | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
name: coverage | |
files: lcov.info | |
fail_ci_if_error: true | |
test-python: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22.04, macos-12, windows-2022] | |
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12'] | |
name: Python ${{ matrix.python-version }} on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- run: python -m pip install tox | |
working-directory: ./bindings/python | |
- uses: dtolnay/rust-toolchain@stable | |
- name: Run ${{ matrix.python }} tox job | |
run: tox -e py | |
working-directory: ./bindings/python | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: rustfmt | |
- run: cargo fmt --all -- --check | |
working-directory: ./jsonschema | |
- run: cargo fmt --all -- --check | |
working-directory: ./bindings/python | |
- run: cargo fmt --all -- --check | |
working-directory: ./bench_helpers | |
- run: cargo fmt --all -- --check | |
working-directory: ./perf-helpers | |
- run: cargo fmt --all -- --check | |
working-directory: ./jsonschema-test-suite | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
components: clippy | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
workspaces: | | |
jsonschema | |
bindings/python | |
- run: cargo clippy --all-targets --all-features -- -D warnings | |
working-directory: ./jsonschema | |
- run: cargo clippy --all-targets --all-features -- -D warnings | |
working-directory: ./bindings/python | |
features: | |
name: Check features | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
workspaces: jsonschema | |
cache-all-crates: "true" | |
- uses: taiki-e/install-action@cargo-hack | |
- run: cargo hack check --feature-powerset --lib | |
working-directory: ./jsonschema |