diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5101173..1570c51 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,182 +1,182 @@ -name: build - -on: - pull_request: - branches: - - main - push: - branches: - - main - schedule: - - cron: "12 3 * * *" - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: {} - -jobs: - fmt: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - with: - persist-credentials: false - - run: rustup component add rustfmt - - run: cargo fmt -- --check - - clippy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - with: - persist-credentials: false - - run: rustup component add clippy - - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - - run: cargo clippy --all-targets -- -D warnings -D clippy::all - - run: cargo clippy --all-targets --features async-tokio -- -D warnings -D clippy::all - - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - with: - submodules: true - persist-credentials: false - - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - - run: cargo test - - test_msv: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - with: - submodules: true - persist-credentials: false - - run: rustup override set 1.74.0 && rustup toolchain install nightly - - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - - run: cargo +nightly update -Z direct-minimal-versions - env: - CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS: fallback - - run: cargo test - - rustdoc: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - with: - persist-credentials: false - - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - - run: cargo doc --all-features --no-deps - env: - RUSTDOCFLAGS: -D warnings - - deny: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - with: - persist-credentials: false +name: build + +on: + pull_request: + branches: + - main + push: + branches: + - main + schedule: + - cron: "12 3 * * *" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: {} + +jobs: + fmt: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + persist-credentials: false + - run: rustup component add rustfmt + - run: cargo fmt -- --check + + clippy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + persist-credentials: false + - run: rustup component add clippy + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 + - run: cargo clippy --all-targets -- -D warnings -D clippy::all + - run: cargo clippy --all-targets --features async-tokio -- -D warnings -D clippy::all + + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + submodules: true + persist-credentials: false + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 + - run: cargo test + + test_msv: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + submodules: true + persist-credentials: false + - run: rustup override set 1.74.0 && rustup toolchain install nightly + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 + - run: cargo +nightly update -Z direct-minimal-versions + env: + CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS: fallback + - run: cargo test + + rustdoc: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + persist-credentials: false + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 + - run: cargo doc --all-features --no-deps + env: + RUSTDOCFLAGS: -D warnings + + deny: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + persist-credentials: false - uses: taiki-e/install-action@d9be7d8cda89035c9c843f78bd44d4f72d8403d4 # v2.79.7 - with: { tool: cargo-deny } - - run: cargo deny check - - semver_checks: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - with: - persist-credentials: false - - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 + with: { tool: cargo-deny } + - run: cargo deny check + + semver_checks: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + persist-credentials: false + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - uses: taiki-e/install-action@d9be7d8cda89035c9c843f78bd44d4f72d8403d4 # v2.79.7 - with: { tool: cargo-semver-checks } - - run: cargo semver-checks check-release - - typos: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - with: - persist-credentials: false + with: { tool: cargo-semver-checks } + - run: cargo semver-checks check-release + + typos: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + persist-credentials: false - uses: taiki-e/install-action@d9be7d8cda89035c9c843f78bd44d4f72d8403d4 # v2.79.7 - with: { tool: typos-cli } - - run: typos - - codspeed: - runs-on: ubuntu-latest - permissions: - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - with: - submodules: true - persist-credentials: false - - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 + with: { tool: typos-cli } + - run: typos + + codspeed: + runs-on: ubuntu-latest + permissions: + id-token: write + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + submodules: true + persist-credentials: false + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - uses: taiki-e/install-action@d9be7d8cda89035c9c843f78bd44d4f72d8403d4 # v2.79.7 - with: { tool: cargo-codspeed } - - run: cargo codspeed build - - uses: CodSpeedHQ/action@3194d9a39c4d46684cb44bf7207fc56626aad8fd # v4 - with: - run: cargo codspeed run - mode: simulation - - fuzz: - strategy: - matrix: - target: [ "parse" ] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - with: - submodules: true - persist-credentials: false - - uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5 - id: cache-corpus - with: - path: fuzz/corpus/${{ matrix.target }} - key: fuzz-${{ matrix.target }}-${{ github.run_id }} - restore-keys: | - fuzz-${{ matrix.target }} - - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - - run: cargo install cargo-fuzz || true - - run: python3 build_corpus.py - working-directory: ./fuzz - if: steps.cache-corpus.outputs.cache-hit != 'true' - - run: cargo fuzz run ${{ matrix.target }} --sanitizer none -- -max_total_time=200 - - run: cargo fuzz cmin ${{ matrix.target }} --sanitizer none - - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 - if: failure() - with: - name: fuzz-artifacts-${{ matrix.target }} - path: fuzz/artifacts/${{ matrix.target }} - - codecov: - runs-on: ubuntu-latest - permissions: - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - with: - submodules: true - persist-credentials: false - - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 + with: { tool: cargo-codspeed } + - run: cargo codspeed build + - uses: CodSpeedHQ/action@9d332c4d90b43981c3e55ae8e38e68709996240f # v4.17.0 + with: + run: cargo codspeed run + mode: simulation + + fuzz: + strategy: + matrix: + target: [ "parse" ] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + submodules: true + persist-credentials: false + - uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5 + id: cache-corpus + with: + path: fuzz/corpus/${{ matrix.target }} + key: fuzz-${{ matrix.target }}-${{ github.run_id }} + restore-keys: | + fuzz-${{ matrix.target }} + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 + - run: cargo install cargo-fuzz || true + - run: python3 build_corpus.py + working-directory: ./fuzz + if: steps.cache-corpus.outputs.cache-hit != 'true' + - run: cargo fuzz run ${{ matrix.target }} --sanitizer none -- -max_total_time=200 + - run: cargo fuzz cmin ${{ matrix.target }} --sanitizer none + - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + if: failure() + with: + name: fuzz-artifacts-${{ matrix.target }} + path: fuzz/artifacts/${{ matrix.target }} + + codecov: + runs-on: ubuntu-latest + permissions: + id-token: write + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + submodules: true + persist-credentials: false + - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 - uses: taiki-e/install-action@d9be7d8cda89035c9c843f78bd44d4f72d8403d4 # v2.79.7 - with: { tool: cargo-llvm-cov } - - run: cargo llvm-cov --features async-tokio --codecov --output-path codecov.json - - uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6 - with: - files: codecov.json - flags: rust - fail_ci_if_error: true - use_oidc: true - - zizmor: - runs-on: ubuntu-latest - permissions: - security-events: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - uses: zizmorcore/zizmor-action@5f14fd08f7cf1cb1609c1e344975f152c7ee938d # v0.5.6 + with: { tool: cargo-llvm-cov } + - run: cargo llvm-cov --features async-tokio --codecov --output-path codecov.json + - uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6 + with: + files: codecov.json + flags: rust + fail_ci_if_error: true + use_oidc: true + + zizmor: + runs-on: ubuntu-latest + permissions: + security-events: write + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + - uses: zizmorcore/zizmor-action@5f14fd08f7cf1cb1609c1e344975f152c7ee938d # v0.5.6