diff --git a/.github/workflows/actionlint.yml b/.github/workflows/actionlint.yml index a6e203ee3..544f694fd 100644 --- a/.github/workflows/actionlint.yml +++ b/.github/workflows/actionlint.yml @@ -22,7 +22,7 @@ jobs: actionlint: runs-on: ubicloud-standard-2 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: persist-credentials: false # Pull the prebuilt image instead of rhysd/actionlint@v1.7.11 (a Docker diff --git a/.github/workflows/ci-image.yml b/.github/workflows/ci-image.yml index 2cb916063..daa87761b 100644 --- a/.github/workflows/ci-image.yml +++ b/.github/workflows/ci-image.yml @@ -20,7 +20,7 @@ jobs: contents: read packages: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 # Copy lockfile + package.json into Docker build context - run: cp package.json bun.lock .github/docker/ @@ -31,7 +31,7 @@ jobs: - id: meta run: echo "tag=ghcr.io/${{ github.repository }}/ci:${{ hashFiles('.github/docker/Dockerfile.ci', 'bun.lock') }}" >> "$GITHUB_OUTPUT" - - uses: docker/login-action@v3 + - uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.actor }} @@ -39,9 +39,9 @@ jobs: # Registry cache export needs a docker-container builder — the default # `docker` driver hard-errors on cache-to. - - uses: docker/setup-buildx-action@v3 + - uses: docker/setup-buildx-action@v4 - - uses: docker/build-push-action@v6 + - uses: docker/build-push-action@v7 with: context: .github/docker file: .github/docker/Dockerfile.ci diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index c69dad8d1..b600ada81 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -24,8 +24,8 @@ jobs: contents: read pull-requests: write steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - - uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 + - uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0 with: fail-on-severity: high fail-on-scopes: runtime, development diff --git a/.github/workflows/evals-periodic.yml b/.github/workflows/evals-periodic.yml index 2bbfb5bf9..7a08ad02f 100644 --- a/.github/workflows/evals-periodic.yml +++ b/.github/workflows/evals-periodic.yml @@ -22,14 +22,14 @@ jobs: outputs: image-tag: ${{ steps.meta.outputs.tag }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - id: meta # Keep in sync with evals.yml — key on Dockerfile + lockfile only # (package.json's version field would bust the key on every ship). run: echo "tag=${{ env.IMAGE }}:${{ hashFiles('.github/docker/Dockerfile.ci', 'bun.lock') }}" >> "$GITHUB_OUTPUT" - - uses: docker/login-action@v3 + - uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.actor }} @@ -50,10 +50,10 @@ jobs: # Registry cache export needs a docker-container builder — the default # `docker` driver hard-errors on cache-to. - if: steps.check.outputs.exists == 'false' - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - if: steps.check.outputs.exists == 'false' - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 with: context: .github/docker file: .github/docker/Dockerfile.ci @@ -103,7 +103,7 @@ jobs: - name: e2e-gemini file: test/gemini-e2e.test.ts steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: fetch-depth: 0 @@ -141,7 +141,7 @@ jobs: - name: Upload eval results if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: eval-periodic-${{ matrix.suite.name }} path: ~/.gstack-dev/evals/*.json diff --git a/.github/workflows/evals.yml b/.github/workflows/evals.yml index 5400b19d4..c29a4462b 100644 --- a/.github/workflows/evals.yml +++ b/.github/workflows/evals.yml @@ -28,7 +28,7 @@ jobs: outputs: image-tag: ${{ steps.meta.outputs.tag }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - id: meta # Key on Dockerfile + lockfile only. package.json is deliberately NOT @@ -38,7 +38,7 @@ jobs: # overwrites /workspace and node_modules comes from the lockfile. run: echo "tag=${{ env.IMAGE }}:${{ hashFiles('.github/docker/Dockerfile.ci', 'bun.lock') }}" >> "$GITHUB_OUTPUT" - - uses: docker/login-action@v3 + - uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.actor }} @@ -63,10 +63,10 @@ jobs: # Registry cache export needs a docker-container builder — the default # `docker` driver hard-errors on cache-to (first live run of the trio). - if: steps.check.outputs.exists == 'false' - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - if: steps.check.outputs.exists == 'false' - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 with: context: .github/docker file: .github/docker/Dockerfile.ci @@ -158,7 +158,7 @@ jobs: # row keeps --retry 1. retries: 2 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: fetch-depth: 0 @@ -320,7 +320,7 @@ jobs: - name: Upload eval results if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: eval-${{ matrix.suite.name }} path: ~/.gstack-dev/evals/*.json @@ -341,12 +341,12 @@ jobs: # early and never hit it, which is why this stayed hidden). See #1802 CI fix. issues: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: fetch-depth: 1 - name: Download all eval artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: pattern: eval-* path: /tmp/eval-results diff --git a/.github/workflows/free-tests.yml b/.github/workflows/free-tests.yml index 9296e3928..782727772 100644 --- a/.github/workflows/free-tests.yml +++ b/.github/workflows/free-tests.yml @@ -48,7 +48,7 @@ jobs: runs-on: ubicloud-standard-8 timeout-minutes: 20 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: persist-credentials: false @@ -56,7 +56,7 @@ jobs: with: bun-version: 1.3.13 - - uses: actions/cache@v4 + - uses: actions/cache@v6 with: path: ~/.bun/install/cache key: linux-bun-${{ hashFiles('bun.lock') }} @@ -67,7 +67,7 @@ jobs: - name: Install dependencies run: bun install --frozen-lockfile - - uses: actions/cache@v4 + - uses: actions/cache@v6 with: path: ~/.cache/ms-playwright key: linux-playwright-${{ hashFiles('bun.lock') }} @@ -118,7 +118,7 @@ jobs: # need a local re-run, which fork contributors can't do on this image. - name: Upload shard logs on failure if: failure() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: free-test-shard-logs path: /tmp/gstack-free-test-*.log diff --git a/.github/workflows/make-pdf-gate.yml b/.github/workflows/make-pdf-gate.yml index ec52e6996..fa9808276 100644 --- a/.github/workflows/make-pdf-gate.yml +++ b/.github/workflows/make-pdf-gate.yml @@ -40,7 +40,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: oven-sh/setup-bun@v2 with: diff --git a/.github/workflows/osv-scanner.yml b/.github/workflows/osv-scanner.yml index 22b8ae6eb..a5f4131ff 100644 --- a/.github/workflows/osv-scanner.yml +++ b/.github/workflows/osv-scanner.yml @@ -18,7 +18,7 @@ jobs: actions: read contents: read security-events: write - uses: google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@3adb4b14a2b0623876d18d863a498b785fb3752d # v2.3.8 + uses: google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@f4cfcc01edc9c8b756a9b873b7a623ca674da51e # v2.3.8 with: scan-args: |- --include-git-root diff --git a/.github/workflows/pr-title-sync.yml b/.github/workflows/pr-title-sync.yml index 9534e4277..5a01ae275 100644 --- a/.github/workflows/pr-title-sync.yml +++ b/.github/workflows/pr-title-sync.yml @@ -39,7 +39,7 @@ jobs: steps: # Base repo only — trusted infra (the rewrite helper). No PR-head checkout. - name: Checkout base repo (trusted) - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: fetch-depth: 1 diff --git a/.github/workflows/quality-gate.yml b/.github/workflows/quality-gate.yml index af1c6fb12..5760d1a6b 100644 --- a/.github/workflows/quality-gate.yml +++ b/.github/workflows/quality-gate.yml @@ -31,7 +31,7 @@ jobs: runs-on: ubicloud-standard-8 timeout-minutes: 20 steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 with: fetch-depth: 0 - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 diff --git a/.github/workflows/skill-docs.yml b/.github/workflows/skill-docs.yml index f9833426f..47ba5f36b 100644 --- a/.github/workflows/skill-docs.yml +++ b/.github/workflows/skill-docs.yml @@ -17,7 +17,7 @@ jobs: check-freshness: runs-on: ubicloud-standard-2 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: oven-sh/setup-bun@v2 - run: bun install # One generation pass for ALL 10 hosts. gen-skill-docs --host all diff --git a/.github/workflows/version-gate.yml b/.github/workflows/version-gate.yml index 0e42a2dc9..00a2e25ec 100644 --- a/.github/workflows/version-gate.yml +++ b/.github/workflows/version-gate.yml @@ -20,7 +20,7 @@ jobs: pull-requests: read steps: - name: Checkout PR head - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.sha }} diff --git a/.github/workflows/windows-free-tests.yml b/.github/workflows/windows-free-tests.yml index 3ac871e5d..52fc9bbb3 100644 --- a/.github/workflows/windows-free-tests.yml +++ b/.github/workflows/windows-free-tests.yml @@ -39,16 +39,16 @@ jobs: timeout-minutes: 15 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - - uses: oven-sh/setup-bun@v1 + - uses: oven-sh/setup-bun@v2 with: bun-version: 1.3.13 # bun install was 35s of a 55s job, all network. Cache keyed on the # lockfile; bun's install cache lives under ~/.bun/install/cache on # every platform. - - uses: actions/cache@v4 + - uses: actions/cache@v6 with: path: ~/.bun/install/cache key: windows-bun-${{ hashFiles('bun.lock') }} @@ -121,7 +121,7 @@ jobs: # carry the WHY (the runner's quiet console names files, not causes). - name: Upload shard logs on failure if: failure() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: windows-free-test-shard-logs path: ${{ runner.temp }}/gstack-free-test-*.log diff --git a/.github/workflows/windows-setup-e2e.yml b/.github/workflows/windows-setup-e2e.yml index 90bb6f0b2..7d2014a2f 100644 --- a/.github/workflows/windows-setup-e2e.yml +++ b/.github/workflows/windows-setup-e2e.yml @@ -35,15 +35,15 @@ jobs: timeout-minutes: 15 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - - uses: oven-sh/setup-bun@v1 + - uses: oven-sh/setup-bun@v2 with: bun-version: 1.3.13 # Same lockfile-keyed install cache as windows-free-tests.yml (install # was 45s of a 64s job, all network). - - uses: actions/cache@v4 + - uses: actions/cache@v6 with: path: ~/.bun/install/cache key: windows-bun-${{ hashFiles('bun.lock') }}