ci: pin actions to Node 24 majors ahead of 2026-06-16 deprecation #30
Workflow file for this run
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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| shellcheck: | |
| name: shellcheck | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Run shellcheck | |
| run: | | |
| shellcheck --version | |
| shellcheck \ | |
| pipeline/queries/_tests/test_canonical.sh \ | |
| pipeline/queries/_tests/test_queries_integration.sh \ | |
| pipeline/queries/_tests/test_gojq_parity.sh \ | |
| pipeline/queries/_tests/smoke_test_real_catalog.sh \ | |
| extractors/swift/tests/test_package_graph.sh | |
| pipeline: | |
| name: pipeline + typescript extractor | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| cache-dependency-path: extractors/typescript/package-lock.json | |
| - name: Cache gojq | |
| # gojq is the engine the binary will embed (per ADR-0005). The parity | |
| # test below verifies every query produces semantically equivalent | |
| # output under gojq and system jq, so the binary is safe to ship. | |
| id: cache-gojq | |
| uses: actions/cache@v5 | |
| with: | |
| path: /usr/local/bin/gojq | |
| key: gojq-${{ runner.os }}-0.12.19 | |
| - name: Install gojq | |
| if: steps.cache-gojq.outputs.cache-hit != 'true' | |
| run: | | |
| GOJQ_VERSION=0.12.19 | |
| curl -sSL "https://github.com/itchyny/gojq/releases/download/v${GOJQ_VERSION}/gojq_v${GOJQ_VERSION}_linux_amd64.tar.gz" \ | |
| | tar -xz -C /tmp | |
| sudo mv "/tmp/gojq_v${GOJQ_VERSION}_linux_amd64/gojq" /usr/local/bin/gojq | |
| - name: Verify toolchain | |
| run: | | |
| jq --version | |
| gojq --version | |
| node --version | |
| - name: Install TypeScript extractor deps | |
| working-directory: extractors/typescript | |
| run: npm ci | |
| - name: Syntax-check extractor entrypoints | |
| run: | | |
| node --check extractors/typescript/type-catalog.mjs | |
| node --check extractors/typescript/function-catalog.mjs | |
| node --check extractors/file-hashes/file-hashes.mjs | |
| - name: jq canonical helper tests | |
| run: pipeline/queries/_tests/test_canonical.sh | |
| - name: jq query integration tests | |
| run: pipeline/queries/_tests/test_queries_integration.sh | |
| - name: gojq / jq parity tests | |
| run: pipeline/queries/_tests/test_gojq_parity.sh | |
| swift: | |
| name: swift extractor | |
| runs-on: macos-latest | |
| defaults: | |
| run: | |
| working-directory: extractors/swift | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Select Xcode | |
| run: sudo xcode-select -s /Applications/Xcode.app | |
| - name: Verify toolchain | |
| run: | | |
| swift --version | |
| jq --version | |
| - name: Cache SwiftPM build | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| extractors/swift/.build | |
| ~/Library/Caches/org.swift.swiftpm | |
| key: ${{ runner.os }}-swiftpm-${{ hashFiles('extractors/swift/Package.resolved') }} | |
| restore-keys: | | |
| ${{ runner.os }}-swiftpm- | |
| - name: Build | |
| run: swift build | |
| - name: Integration tests (package-graph) | |
| run: tests/test_package_graph.sh |