docs(readme): audit 신호 정책을 문서화한다 #611
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: maximus-dev | |
| on: | |
| push: | |
| paths: | |
| - "action.yml" | |
| - "Cargo.toml" | |
| - "Cargo.lock" | |
| - "rust-toolchain.toml" | |
| - "bin/**" | |
| - "crates/**" | |
| - "npm/**" | |
| - "scripts/**" | |
| - "src/**" | |
| - "test/**" | |
| - ".github/actions/marketplace-wrapper/action.yml" | |
| - ".github/workflows/action-smoke.yml" | |
| - ".github/workflows/dev.yml" | |
| - ".github/workflows/manual-release-bump.yml" | |
| - ".github/workflows/release-candidate.yml" | |
| - ".github/workflows/release.yml" | |
| - ".github/workflows/release-drafter.yml" | |
| - ".github/workflows/rust-release-binaries.yml" | |
| - ".github/release-drafter.yml" | |
| - "docs/github-action-marketplace.md" | |
| - "package.json" | |
| - "README*.md" | |
| - "LICENSE" | |
| - "CODE_OF_CONDUCT.md" | |
| - "CONTRIBUTING.md" | |
| - "SECURITY.md" | |
| pull_request: | |
| paths: | |
| - "action.yml" | |
| - "Cargo.toml" | |
| - "Cargo.lock" | |
| - "rust-toolchain.toml" | |
| - "bin/**" | |
| - "crates/**" | |
| - "npm/**" | |
| - "scripts/**" | |
| - "src/**" | |
| - "test/**" | |
| - ".github/actions/marketplace-wrapper/action.yml" | |
| - ".github/workflows/action-smoke.yml" | |
| - ".github/workflows/dev.yml" | |
| - ".github/workflows/manual-release-bump.yml" | |
| - ".github/workflows/release-candidate.yml" | |
| - ".github/workflows/release.yml" | |
| - ".github/workflows/release-drafter.yml" | |
| - ".github/workflows/rust-release-binaries.yml" | |
| - ".github/release-drafter.yml" | |
| - "docs/github-action-marketplace.md" | |
| - "package.json" | |
| - "README*.md" | |
| - "LICENSE" | |
| - "CODE_OF_CONDUCT.md" | |
| - "CONTRIBUTING.md" | |
| - "SECURITY.md" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: dev-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| rust-workspace-metadata: | |
| name: Rust workspace metadata | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Set up Rust | |
| uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable | |
| - name: Set up Node.js | |
| uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 | |
| with: | |
| node-version: "24" | |
| - name: Validate Cargo workspace metadata | |
| run: cargo metadata --format-version 1 --no-deps | |
| - name: Run Rust core tests | |
| run: cargo test -p maximus-core | |
| - name: Run Rust CLI tests | |
| run: cargo test -p maximus-cli | |
| node-compatibility: | |
| name: Node compatibility (Node ${{ matrix.node }}) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node: [20, 22, 24] | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| - name: Run unit tests | |
| run: npm test | |
| cli-smoke-check: | |
| name: CLI smoke checks (Node ${{ matrix.node }}) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node: [20, 22, 24] | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| - name: Smoke test audit | |
| run: node ./bin/maximus.js audit ./test/fixtures/clean-project | |
| - name: Smoke test doctor | |
| run: node ./bin/maximus.js doctor ./test/fixtures/clean-project | |
| - name: Smoke test fix | |
| run: node ./bin/maximus.js fix ./test/fixtures/clean-project --dry-run | |
| readme-consistency-check: | |
| name: README consistency | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Verify multilingual README files and language links | |
| run: | | |
| files=( | |
| README.md | |
| README.en.md | |
| README.zh-CN.md | |
| README.es.md | |
| README.ja.md | |
| ) | |
| for file in "${files[@]}"; do | |
| test -f "$file" | |
| grep -q 'README.md' "$file" | |
| grep -q 'README.en.md' "$file" | |
| grep -q 'README.zh-CN.md' "$file" | |
| grep -q 'README.es.md' "$file" | |
| grep -q 'README.ja.md' "$file" | |
| done | |
| package-check: | |
| name: Package dry run (Node ${{ matrix.node }}, ${{ matrix.runner.platform }}) | |
| runs-on: ${{ matrix.runner.label }} | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node: [20, 22, 24] | |
| runner: | |
| - label: ubuntu-24.04 | |
| platform: linux-x64-gnu | |
| - label: ubuntu-24.04-arm | |
| platform: linux-arm64-gnu | |
| - label: macos-15-intel | |
| platform: darwin-x64 | |
| - label: macos-14 | |
| platform: darwin-arm64 | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| - name: Set up Rust | |
| uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable | |
| - name: Pack package | |
| run: | | |
| env npm_config_cache="$RUNNER_TEMP/.npm-cache" npm pack --json > pack.json | |
| - name: Smoke test packaged CLI entrypoint | |
| run: | | |
| node ./scripts/run-packed-wrapper-smoke.mjs ./pack.json ./test/fixtures/clean-project | |
| release-wiring: | |
| name: Release wiring | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 | |
| with: | |
| node-version: "24" | |
| - name: Validate release wiring contract | |
| run: node ./scripts/validate-rust-release-wiring.mjs | |
| - name: Run focused release wiring test | |
| run: node --test test/release-workflow-context.test.js test/github-action-wiring.test.js test/release-docs.test.js test/release-plan.test.js test/release-candidate-metadata.test.js test/release-helpers.test.js test/npm-error-classifiers.test.js test/bump-release-version.test.js |