diff --git a/.github/actions/junit-report/README.md b/.github/actions/junit-report/README.md index 004526c20..6ccb93755 100644 --- a/.github/actions/junit-report/README.md +++ b/.github/actions/junit-report/README.md @@ -8,7 +8,7 @@ Actions job summary and emits one `::error` annotation per failed test case. ```yaml - name: Publish test summary if: always() - uses: ./spinifex/.github/actions/junit-report # or your own checkout path + uses: $/.github/actions/junit-report with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml title: "Go E2E results" diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 5e1265102..66c203e16 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -23,11 +23,6 @@ updates: timezone: Australia/Sydney cooldown: default-days: 3 - ignore: - - dependency-name: "*" - update-types: - - "version-update:semver-minor" - - "version-update:semver-patch" groups: github-actions: patterns: diff --git a/.github/workflows/actions.lock b/.github/workflows/actions.lock new file mode 100644 index 000000000..062a8ce34 --- /dev/null +++ b/.github/workflows/actions.lock @@ -0,0 +1,137 @@ +# This file is machine-generated by `gh actions-lock`. +# Do not edit by hand; run `gh actions-lock` to update. +# Docs: https://gh.io/actions-lockfile +version: 'v0.0.3' +workflows: + '.github/workflows/apt-packages.yml': + - 'actions/checkout@v7.0.1' + '.github/workflows/dev-release.yml': + - 'actions/checkout@v7.0.1' + - 'actions/setup-go@v7.0.0' + - 'docker/setup-buildx-action@v4.4.1' + '.github/workflows/e2e-baremetal.yml': + - 'actions/checkout@v7.0.1' + - 'actions/create-github-app-token@v3.3.0' + - 'actions/upload-artifact@v7.0.2' + '.github/workflows/e2e-cloudvendor-nightly.yml': + - 'actions/checkout@v7.0.1' + - 'actions/create-github-app-token@v3.3.0' + - 'actions/upload-artifact@v7.0.2' + - 'hashicorp/setup-terraform@v4.0.1' + '.github/workflows/e2e-ddil.yml': + - 'actions/checkout@v7.0.1' + - 'actions/create-github-app-token@v3.3.0' + - 'actions/upload-artifact@v7.0.2' + '.github/workflows/e2e-nightly.yml': + - 'actions/checkout@v7.0.1' + - 'actions/create-github-app-token@v3.3.0' + - 'actions/download-artifact@v8.0.2' + - 'actions/upload-artifact@v7.0.2' + '.github/workflows/e2e-suites.yml': + - 'actions/checkout@v7.0.1' + - 'actions/create-github-app-token@v3.3.0' + - 'actions/setup-go@v7.0.0' + - 'actions/upload-artifact@v7.0.2' + '.github/workflows/e2e.yml': + - 'actions/checkout@v7.0.1' + - 'actions/create-github-app-token@v3.3.0' + - 'actions/download-artifact@v8.0.2' + - 'actions/setup-go@v7.0.0' + - 'actions/upload-artifact@v7.0.2' + '.github/workflows/gpu-e2e.yml': + - 'actions/checkout@v7.0.1' + - 'actions/setup-go@v7.0.0' + - 'actions/upload-artifact@v7.0.2' + '.github/workflows/image-scripts.yml': + - 'actions/checkout@v7.0.1' + - 'actions/setup-go@v7.0.0' + '.github/workflows/perf-3node.yml': + - 'actions/checkout@v7.0.1' + - 'actions/create-github-app-token@v3.3.0' + - 'actions/setup-go@v7.0.0' + - 'actions/upload-artifact@v7.0.2' + '.github/workflows/publish-system-ami.yml': + - 'actions/checkout@v7.0.1' + - 'actions/setup-go@v7.0.0' + '.github/workflows/release.yml': + - 'actions/checkout@v7.0.1' + - 'actions/create-github-app-token@v3.3.0' + - 'actions/download-artifact@v8.0.2' + - 'actions/setup-go@v7.0.0' + - 'actions/upload-artifact@v7.0.2' + - 'docker/setup-buildx-action@v4.4.1' + - 'softprops/action-gh-release@v3.0.3' + '.github/workflows/segscan-oracle.yml': + - 'actions/checkout@v7.0.1' + - 'actions/create-github-app-token@v3.3.0' + - 'actions/setup-go@v7.0.0' + '.github/workflows/spinifex.yml': + - 'actions/cache@v6.1.0' + - 'actions/checkout@v7.0.1' + - 'actions/setup-go@v7.0.0' + - 'golangci/golangci-lint-action@v9.3.0' + '.github/workflows/ui.yml': + - 'actions/checkout@v7.0.1' + - 'actions/setup-node@v7.1.0' + - 'pnpm/action-setup@v6.0.10' +dependencies: + 'actions/cache@v6.1.0': + ref: 'v6.1.0' + commit: 'sha1-55cc8345863c7cc4c66a329aec7e433d2d1c52a9' + owner_id: 44036562 + repo_id: 215566462 + 'actions/checkout@v7.0.1': + ref: 'v7.0.1' + commit: 'sha1-3d3c42e5aac5ba805825da76410c181273ba90b1' + owner_id: 44036562 + repo_id: 197814629 + 'actions/create-github-app-token@v3.3.0': + ref: 'v3.3.0' + commit: 'sha1-64ab729a6294000f5aa4a4bc0b73d1f32bc45510' + owner_id: 44036562 + repo_id: 642580244 + 'actions/download-artifact@v8.0.2': + ref: 'v8.0.2' + commit: 'sha1-9000827ccba6bdab643e8b6fd33ac0654aef8333' + owner_id: 44036562 + repo_id: 192626254 + 'actions/setup-go@v7.0.0': + ref: 'v7.0.0' + commit: 'sha1-b7ad1dad31e06c5925ef5d2fc7ad053ef454303e' + owner_id: 44036562 + repo_id: 192624594 + 'actions/setup-node@v7.1.0': + ref: 'v7.1.0' + commit: 'sha1-949feb2413d6458794dcd2491c4babbbce0c15c1' + owner_id: 44036562 + repo_id: 189476904 + 'actions/upload-artifact@v7.0.2': + ref: 'v7.0.2' + commit: 'sha1-cf430e030ddbb5b0abf93d22962f4752f3646cd9' + owner_id: 44036562 + repo_id: 192625955 + 'docker/setup-buildx-action@v4.4.1': + ref: 'v4.4.1' + commit: 'sha1-f87e5991a6d7451dcb8d9637bfbc97413f497069' + owner_id: 5429470 + repo_id: 288485773 + 'golangci/golangci-lint-action@v9.3.0': + ref: 'v9.3.0' + commit: 'sha1-ba0d7d2ec06a0ea1cb5fa41b2e4a3ab91d21278a' + owner_id: 35628013 + repo_id: 232539879 + 'hashicorp/setup-terraform@v4.0.1': + ref: 'v4.0.1' + commit: 'sha1-dfe3c3f87815947d99a8997f908cb6525fc44e9e' + owner_id: 761456 + repo_id: 258271226 + 'pnpm/action-setup@v6.0.10': + ref: 'v6.0.10' + commit: 'sha1-0977fd99725f1db4007ccb2928dbb4e90d06cc86' + owner_id: 21320719 + repo_id: 262289747 + 'softprops/action-gh-release@v3.0.3': + ref: 'v3.0.3' + commit: 'sha1-efb35369e0ad2afab669f228072c1b0d510eae64' + owner_id: 2242 + repo_id: 204253808 diff --git a/.github/workflows/apt-packages.yml b/.github/workflows/apt-packages.yml index 920e4e8e3..99eabcf6c 100644 --- a/.github/workflows/apt-packages.yml +++ b/.github/workflows/apt-packages.yml @@ -40,7 +40,7 @@ jobs: steps: - name: Checkout Code - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 - name: Resolve runtime package list run: ./scripts/lint-apt-packages.sh ${{ matrix.image }} diff --git a/.github/workflows/dev-release.yml b/.github/workflows/dev-release.yml index a0b96e107..415081853 100644 --- a/.github/workflows/dev-release.yml +++ b/.github/workflows/dev-release.yml @@ -34,7 +34,7 @@ jobs: # Full history and tags, because the tag name is git describe and a shallow # clone has no tag to describe against. - name: Checkout Spinifex - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: path: spinifex fetch-depth: 0 @@ -42,38 +42,38 @@ jobs: # dev, not each repository's default branch, which is what release.yml takes. # A dev build of spinifex against main of the others is a pairing nobody runs. - name: Checkout Predastore - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/predastore ref: dev path: predastore - name: Checkout Viperblock - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/viperblock ref: dev path: viperblock - name: Checkout Northstar - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/northstar ref: dev path: northstar - name: Checkout Bluebottle - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/bluebottle ref: dev path: bluebottle - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@v4.4.1 - name: Set up Go - uses: actions/setup-go@v7 + uses: actions/setup-go@v7.0.0 with: go-version-file: spinifex/go.mod diff --git a/.github/workflows/e2e-baremetal.yml b/.github/workflows/e2e-baremetal.yml index 5e526c108..3daf8ccb3 100644 --- a/.github/workflows/e2e-baremetal.yml +++ b/.github/workflows/e2e-baremetal.yml @@ -77,18 +77,18 @@ jobs: if [ ! -c /dev/null ]; then sudo rm -f /dev/null; sudo mknod -m 666 /dev/null c 1 3; fi sudo rm -rf --one-file-system "$GITHUB_WORKSPACE"/* - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: ref: ${{ inputs.ref || github.ref }} - - uses: actions/create-github-app-token@v3 + - uses: actions/create-github-app-token@v3.3.0 id: app-token with: client-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} repositories: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/mulga token: ${{ steps.app-token.outputs.token }} @@ -222,20 +222,20 @@ jobs: - name: Ship test results to Elasticsearch if: always() continue-on-error: true - uses: ./.github/actions/junit-to-es + uses: $/.github/actions/junit-to-es with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml cell: ${{ env.BM_CELL }} - name: Analyze e2e failures if: always() - uses: ./.github/actions/e2e-analyze + uses: $/.github/actions/e2e-analyze with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml log-dir: ${{ env.ARTIFACT_DIR }} title: "E2E failure analysis (cell ${{ env.BM_CELL }})" - - uses: actions/upload-artifact@v7 + - uses: actions/upload-artifact@v7.0.2 if: always() with: name: e2e-artifacts-cell-${{ env.BM_CELL }}-${{ github.run_id }} diff --git a/.github/workflows/e2e-cloudvendor-nightly.yml b/.github/workflows/e2e-cloudvendor-nightly.yml index ffae5814b..c03d89da9 100644 --- a/.github/workflows/e2e-cloudvendor-nightly.yml +++ b/.github/workflows/e2e-cloudvendor-nightly.yml @@ -76,11 +76,11 @@ jobs: - name: Put the Terraform state outside the checkout run: echo "OCI_STATE_ROOT=$RUNNER_WORKSPACE/oci-state" >> "$GITHUB_ENV" - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: path: spinifex - - uses: actions/create-github-app-token@v3 + - uses: actions/create-github-app-token@v3.3.0 id: app-token with: client-id: ${{ secrets.APP_ID }} @@ -92,14 +92,14 @@ jobs: # build-install-artifacts.sh lives in mulga. The workbooks and their driver # are in spinifex, so only the one directory is needed here. - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/mulga path: mulga token: ${{ steps.app-token.outputs.token }} sparse-checkout: scripts/tofu-cluster - - uses: hashicorp/setup-terraform@v4 + - uses: hashicorp/setup-terraform@v4.0.1 with: terraform_wrapper: false @@ -273,7 +273,7 @@ jobs: # collect step above chose, so terraform.tfstate cannot reach an artifact. - name: Upload the run if: always() - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v7.0.2 with: name: e2e-oci-${{ github.run_id }} path: | diff --git a/.github/workflows/e2e-ddil.yml b/.github/workflows/e2e-ddil.yml index 48539f409..51a94434c 100644 --- a/.github/workflows/e2e-ddil.yml +++ b/.github/workflows/e2e-ddil.yml @@ -38,19 +38,19 @@ jobs: - name: Clean Workspace run: sudo rm -rf "$GITHUB_WORKSPACE"/* - - uses: actions/create-github-app-token@v3 + - uses: actions/create-github-app-token@v3.3.0 id: app-token with: client-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} repositories: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 name: Checkout Spinifex with: path: spinifex - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 name: Checkout Mulga (tofu-cluster) with: repository: mulgadc/mulga @@ -81,7 +81,7 @@ jobs: # Adds ci.job_id alongside ci.cell, before Bootstrap bakes the attrs into # the VMs, so a telemetry doc points back at this job's log directly. - name: Resolve CI job id - uses: ./spinifex/.github/actions/otel-job-id + uses: $/.github/actions/otel-job-id with: job-name: DDIL Real Multi-Node @@ -175,7 +175,7 @@ jobs: - name: Publish test summary if: always() - uses: ./spinifex/.github/actions/junit-report + uses: $/.github/actions/junit-report with: junit-glob: ${{ runner.temp }}/ddil-results/junit-*.xml title: "DDIL scenario results" @@ -185,7 +185,7 @@ jobs: - name: Ship test results to Elasticsearch if: always() continue-on-error: true - uses: ./spinifex/.github/actions/junit-to-es + uses: $/.github/actions/junit-to-es with: junit-glob: ${{ runner.temp }}/ddil-results/junit-*.xml cell: ddil @@ -214,7 +214,7 @@ jobs: - name: Upload DDIL Results if: always() - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v7.0.2 with: name: ddil-results-${{ github.run_id }} path: ${{ runner.temp }}/ddil-results @@ -234,7 +234,7 @@ jobs: - name: Upload tofu log if: always() - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v7.0.2 with: name: tofu-log-ddil-${{ github.run_id }} path: ${{ env.TOFU_LOG }} diff --git a/.github/workflows/e2e-nightly.yml b/.github/workflows/e2e-nightly.yml index f18f294f9..87b21b798 100644 --- a/.github/workflows/e2e-nightly.yml +++ b/.github/workflows/e2e-nightly.yml @@ -43,7 +43,7 @@ jobs: cells: ${{ steps.pick.outputs.cells }} any: ${{ steps.pick.outputs.any }} steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: sparse-checkout: | .github/e2e-cells.json @@ -128,21 +128,21 @@ jobs: if [ ! -c /dev/null ]; then sudo rm -f /dev/null; sudo mknod -m 666 /dev/null c 1 3; fi sudo rm -rf --one-file-system "$GITHUB_WORKSPACE"/* - - uses: actions/create-github-app-token@v3 + - uses: actions/create-github-app-token@v3.3.0 id: app-token with: client-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} repositories: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/mulga token: ${{ steps.app-token.outputs.token }} sparse-checkout: scripts/tofu-cluster path: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: path: spinifex @@ -151,7 +151,7 @@ jobs: # links each cell's telemetry to the job log that produced it. Runs # before Bootstrap bakes SPINIFEX_OTEL_ATTRS into the VM's telemetry.env. - name: Resolve CI job id - uses: ./spinifex/.github/actions/otel-job-id + uses: $/.github/actions/otel-job-id with: job-name: "cell-${{ matrix.cell }} (${{ matrix.topo }}/${{ matrix.net }}/${{ matrix.host }}${{ matrix.extra && format('/{0}', matrix.extra) || '' }})" @@ -813,20 +813,20 @@ jobs: - name: Ship test results to Elasticsearch if: always() continue-on-error: true - uses: ./spinifex/.github/actions/junit-to-es + uses: $/.github/actions/junit-to-es with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml cell: ${{ matrix.cell }} - name: Analyze e2e failures if: always() - uses: ./spinifex/.github/actions/e2e-analyze + uses: $/.github/actions/e2e-analyze with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml log-dir: ${{ env.ARTIFACT_DIR }} title: "E2E failure analysis (cell ${{ matrix.cell }})" - - uses: actions/upload-artifact@v7 + - uses: actions/upload-artifact@v7.0.2 if: always() with: name: e2e-artifacts-cell-${{ matrix.cell }}-${{ github.run_id }} @@ -838,7 +838,7 @@ jobs: # pulling nineteen journals it has no use for. - name: Upload junit only if: always() - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v7.0.2 with: name: junit-cell-${{ matrix.cell }}-${{ github.run_id }} path: ${{ env.ARTIFACT_DIR }}/junit-*.xml @@ -869,7 +869,7 @@ jobs: - name: Upload tofu log if: always() - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v7.0.2 with: name: tofu-log-cell-${{ matrix.cell }}-${{ github.run_id }} path: ${{ env.TOFU_LOG }} @@ -974,20 +974,20 @@ jobs: { sudo mkdir -p "$E2E_ROOT/work" && sudo chown "$(id -u):$(id -g)" "$E2E_ROOT" "$E2E_ROOT/work"; } echo "TMPDIR=$E2E_ROOT/work" >> "$GITHUB_ENV" - - uses: actions/create-github-app-token@v3 + - uses: actions/create-github-app-token@v3.3.0 id: app-token with: client-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} repositories: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/mulga token: ${{ steps.app-token.outputs.token }} path: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: ref: ${{ env.GIT_BRANCH }} path: mulga/spinifex @@ -999,25 +999,25 @@ jobs: run: bash .github/resolve-sibling-refs.sh working-directory: mulga/spinifex - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/viperblock ref: ${{ steps.siblings.outputs.viperblock }} path: mulga/viperblock - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/predastore ref: ${{ steps.siblings.outputs.predastore }} path: mulga/predastore - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/northstar ref: ${{ steps.siblings.outputs.northstar }} path: mulga/northstar - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/bluebottle ref: ${{ steps.siblings.outputs.bluebottle }} @@ -1152,7 +1152,7 @@ jobs: /tmp/smoke-$GITHUB_RUN_ID.log | tail -1) [ -n "$qemu" ] && cp "$qemu" /tmp/cell21-artifacts-$GITHUB_RUN_ID/qemu.log || true - - uses: actions/upload-artifact@v7 + - uses: actions/upload-artifact@v7.0.2 if: always() with: name: e2e-artifacts-cell-21-${{ github.run_id }} @@ -1221,20 +1221,20 @@ jobs: # disks, which is what the tmpfs assertion below is about. echo "WORK_DIR=$E2E_ROOT/work/cell22-$GITHUB_RUN_ID" >> "$GITHUB_ENV" - - uses: actions/create-github-app-token@v3 + - uses: actions/create-github-app-token@v3.3.0 id: app-token with: client-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} repositories: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/mulga token: ${{ steps.app-token.outputs.token }} path: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: ref: ${{ env.GIT_BRANCH }} path: mulga/spinifex @@ -1246,25 +1246,25 @@ jobs: run: bash .github/resolve-sibling-refs.sh working-directory: mulga/spinifex - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/viperblock ref: ${{ steps.siblings.outputs.viperblock }} path: mulga/viperblock - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/predastore ref: ${{ steps.siblings.outputs.predastore }} path: mulga/predastore - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/northstar ref: ${{ steps.siblings.outputs.northstar }} path: mulga/northstar - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/bluebottle ref: ${{ steps.siblings.outputs.bluebottle }} @@ -1318,7 +1318,7 @@ jobs: cp "$WORK_DIR"/*-serial.log /tmp/cell22-artifacts-$GITHUB_RUN_ID/ 2>/dev/null || echo "no per-node serial logs — the run passed and cleaned up after itself" - - uses: actions/upload-artifact@v7 + - uses: actions/upload-artifact@v7.0.2 if: always() with: name: e2e-artifacts-cell-22-${{ github.run_id }} @@ -1370,7 +1370,7 @@ jobs: echo "PERF_RESULTS_ROOT=$E2E_ROOT/predastore-perf-$GITHUB_RUN_ID" >> "$GITHUB_ENV" - name: Checkout Spinifex - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: path: spinifex @@ -1385,7 +1385,7 @@ jobs: working-directory: spinifex - name: Checkout Predastore - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/predastore ref: ${{ steps.siblings.outputs.predastore }} @@ -1438,7 +1438,7 @@ jobs: # Report-only. The baseline comparison and the -10% gate are mulga-wpjsx; # until the run-to-run spread is known from real nights, a threshold would # be a guess, and a gate that cries wolf gets muted. - - uses: actions/upload-artifact@v7 + - uses: actions/upload-artifact@v7.0.2 if: always() with: name: predastore-perf-${{ github.run_id }} @@ -1497,7 +1497,7 @@ jobs: echo "STRESS_RESULTS_ROOT=$E2E_ROOT/predastore-stress-$GITHUB_RUN_ID" >> "$GITHUB_ENV" - name: Checkout Spinifex - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: path: spinifex @@ -1509,7 +1509,7 @@ jobs: working-directory: spinifex - name: Checkout Predastore - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/predastore ref: ${{ steps.siblings.outputs.predastore }} @@ -1564,7 +1564,7 @@ jobs: mkdir -p "$STRESS_RESULTS_ROOT" make e2e-stress 2>&1 | tee "$STRESS_RESULTS_ROOT/e2e-stress.log" - - uses: actions/upload-artifact@v7 + - uses: actions/upload-artifact@v7.0.2 if: always() with: name: predastore-stress-${{ github.run_id }} @@ -1601,13 +1601,13 @@ jobs: if: always() runs-on: ubuntu-26.04 steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: sparse-checkout: .github/scripts/e2e-run-summary.py sparse-checkout-cone-mode: false - name: Collect junit - uses: actions/download-artifact@v8 + uses: actions/download-artifact@v8.0.2 with: pattern: junit-cell-*-${{ github.run_id }} path: junit diff --git a/.github/workflows/e2e-suites.yml b/.github/workflows/e2e-suites.yml index a03753a29..8c3af05aa 100644 --- a/.github/workflows/e2e-suites.yml +++ b/.github/workflows/e2e-suites.yml @@ -103,25 +103,25 @@ jobs: | sort -r | xargs -r -I{} sudo umount -l -R {} || true sudo rm -rf --one-file-system "$GITHUB_WORKSPACE"/* - - uses: actions/create-github-app-token@v3 + - uses: actions/create-github-app-token@v3.3.0 id: app-token with: client-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} repositories: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/mulga token: ${{ steps.app-token.outputs.token }} sparse-checkout: scripts/tofu-cluster path: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: path: spinifex - - uses: actions/setup-go@v7 + - uses: actions/setup-go@v7.0.0 with: go-version-file: spinifex/go.mod cache: false @@ -157,7 +157,7 @@ jobs: # the env: the suite legs share this env and its baked telemetry.env, so # the provisioner is the only job the daemon telemetry can belong to. - name: Resolve CI job id - uses: ./spinifex/.github/actions/otel-job-id + uses: $/.github/actions/otel-job-id with: job-name: Single env · provision @@ -300,7 +300,7 @@ jobs: - name: Upload tofu log if: always() - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v7.0.2 with: name: tofu-log-single-${{ github.run_id }} path: ${{ env.TOFU_LOG }} @@ -323,11 +323,11 @@ jobs: SSH_KEY: ${{ needs.single_provision.outputs.ssh_key }} ARTIFACT_DIR: /tmp/spinifex-e2e-single-${{ github.run_id }}-${{ matrix.suite }} steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: path: spinifex - - uses: actions/setup-go@v7 + - uses: actions/setup-go@v7.0.0 with: go-version-file: spinifex/go.mod cache: false @@ -391,7 +391,7 @@ jobs: - name: Publish test summary if: always() - uses: ./spinifex/.github/actions/junit-report + uses: $/.github/actions/junit-report with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml title: "E2E ${{ matrix.suite }} results" @@ -401,20 +401,20 @@ jobs: - name: Ship test results to Elasticsearch if: always() continue-on-error: true - uses: ./spinifex/.github/actions/junit-to-es + uses: $/.github/actions/junit-to-es with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml cell: single - name: Analyze e2e failures if: always() - uses: ./spinifex/.github/actions/e2e-analyze + uses: $/.github/actions/e2e-analyze with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml log-dir: ${{ env.ARTIFACT_DIR }} title: "E2E ${{ matrix.suite }} failure analysis" - - uses: actions/upload-artifact@v7 + - uses: actions/upload-artifact@v7.0.2 if: always() with: name: e2e-single-${{ matrix.suite }}-${{ github.run_id }} @@ -445,7 +445,7 @@ jobs: # Reuse the persisted mulga/ tofu-cluster workspace from single_provision. # Re-checkout only spinifex (for ci-fmt + diag scripts); checking out mulga # again would wipe the local tofu state and orphan the VM. - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: path: spinifex @@ -468,7 +468,7 @@ jobs: | tar -C "${ARTIFACT_DIR}/lb-console" -xf - 2>/dev/null true - - uses: actions/upload-artifact@v7 + - uses: actions/upload-artifact@v7.0.2 if: always() with: name: e2e-single-diag-${{ github.run_id }} @@ -524,7 +524,7 @@ jobs: - name: Upload tofu log if: always() - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v7.0.2 with: name: tofu-log-single-td-${{ github.run_id }} path: ${{ env.TOFU_LOG }} @@ -572,25 +572,25 @@ jobs: | sort -r | xargs -r -I{} sudo umount -l -R {} || true sudo rm -rf --one-file-system "$GITHUB_WORKSPACE"/* - - uses: actions/create-github-app-token@v3 + - uses: actions/create-github-app-token@v3.3.0 id: app-token with: client-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} repositories: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/mulga token: ${{ steps.app-token.outputs.token }} sparse-checkout: scripts/tofu-cluster path: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: path: spinifex - - uses: actions/setup-go@v7 + - uses: actions/setup-go@v7.0.0 with: go-version-file: spinifex/go.mod cache: false @@ -607,7 +607,7 @@ jobs: # See the matching note on single_provision. - name: Resolve CI job id - uses: ./spinifex/.github/actions/otel-job-id + uses: $/.github/actions/otel-job-id with: job-name: Multi env · provision @@ -715,7 +715,7 @@ jobs: - name: Upload tofu log if: always() - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v7.0.2 with: name: tofu-log-multi-${{ github.run_id }} path: ${{ env.TOFU_LOG }} @@ -738,11 +738,11 @@ jobs: NODES_CSV: ${{ needs.multi_provision.outputs.nodes_csv }} ARTIFACT_DIR: /tmp/spinifex-e2e-multi-${{ github.run_id }}-${{ matrix.suite }} steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: path: spinifex - - uses: actions/setup-go@v7 + - uses: actions/setup-go@v7.0.0 with: go-version-file: spinifex/go.mod cache: false @@ -806,7 +806,7 @@ jobs: - name: Publish test summary if: always() - uses: ./spinifex/.github/actions/junit-report + uses: $/.github/actions/junit-report with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml title: "Multi-Node E2E ${{ matrix.suite }} results" @@ -816,20 +816,20 @@ jobs: - name: Ship test results to Elasticsearch if: always() continue-on-error: true - uses: ./spinifex/.github/actions/junit-to-es + uses: $/.github/actions/junit-to-es with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml cell: multi - name: Analyze e2e failures if: always() - uses: ./spinifex/.github/actions/e2e-analyze + uses: $/.github/actions/e2e-analyze with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml log-dir: ${{ env.ARTIFACT_DIR }} title: "Multi-Node E2E ${{ matrix.suite }} failure analysis" - - uses: actions/upload-artifact@v7 + - uses: actions/upload-artifact@v7.0.2 if: always() with: name: e2e-multi-${{ matrix.suite }}-${{ github.run_id }} @@ -856,7 +856,7 @@ jobs: SSH_KEY: ${{ needs.multi_provision.outputs.ssh_key }} NODES_CSV: ${{ needs.multi_provision.outputs.nodes_csv }} steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: path: spinifex @@ -910,7 +910,7 @@ jobs: - name: Upload tofu log if: always() - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v7.0.2 with: name: tofu-log-multi-td-${{ github.run_id }} path: ${{ env.TOFU_LOG }} diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 70b2f2bb3..142945bf2 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -54,7 +54,7 @@ jobs: single_timeout: ${{ steps.budgets.outputs.single_timeout }} multi_timeout: ${{ steps.budgets.outputs.multi_timeout }} steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: path: spinifex sparse-checkout: .github/scripts @@ -142,25 +142,25 @@ jobs: # stale suite-status.txt / analysis dirs can't leak into this attempt. rm -rf "${ARTIFACT_DIR}" - - uses: actions/create-github-app-token@v3 + - uses: actions/create-github-app-token@v3.3.0 id: app-token with: client-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} repositories: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/mulga token: ${{ steps.app-token.outputs.token }} sparse-checkout: scripts/tofu-cluster path: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: path: spinifex - - uses: actions/setup-go@v7 + - uses: actions/setup-go@v7.0.0 with: go-version-file: spinifex/go.mod cache: false @@ -178,7 +178,7 @@ jobs: # Adds ci.job_id alongside ci.cell, before Bootstrap bakes the attrs into # the VM, so a telemetry doc points back at this job's log directly. - name: Resolve CI job id - uses: ./spinifex/.github/actions/otel-job-id + uses: $/.github/actions/otel-job-id with: job-name: Single-Node E2E @@ -513,7 +513,7 @@ jobs: - name: Publish test summary if: always() - uses: ./spinifex/.github/actions/junit-report + uses: $/.github/actions/junit-report with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml title: "E2E results" @@ -523,20 +523,20 @@ jobs: - name: Ship test results to Elasticsearch if: always() continue-on-error: true - uses: ./spinifex/.github/actions/junit-to-es + uses: $/.github/actions/junit-to-es with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml cell: single - name: Analyze e2e failures if: always() - uses: ./spinifex/.github/actions/e2e-analyze + uses: $/.github/actions/e2e-analyze with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml log-dir: ${{ env.ARTIFACT_DIR }} title: "E2E failure analysis" - - uses: actions/upload-artifact@v7 + - uses: actions/upload-artifact@v7.0.2 if: always() with: name: e2e-artifacts-${{ github.run_id }} @@ -580,7 +580,7 @@ jobs: - name: Upload tofu log if: always() - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v7.0.2 with: name: tofu-log-single-${{ github.run_id }} path: ${{ env.TOFU_LOG }} @@ -643,25 +643,25 @@ jobs: # stale suite-status.txt / analysis dirs can't leak into this attempt. rm -rf "${ARTIFACT_DIR}" - - uses: actions/create-github-app-token@v3 + - uses: actions/create-github-app-token@v3.3.0 id: app-token with: client-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} repositories: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/mulga token: ${{ steps.app-token.outputs.token }} sparse-checkout: scripts/tofu-cluster path: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: path: spinifex - - uses: actions/setup-go@v7 + - uses: actions/setup-go@v7.0.0 with: go-version-file: spinifex/go.mod cache: false @@ -678,7 +678,7 @@ jobs: # See the matching note on e2e_single. - name: Resolve CI job id - uses: ./spinifex/.github/actions/otel-job-id + uses: $/.github/actions/otel-job-id with: job-name: Multi-Node E2E @@ -967,7 +967,7 @@ jobs: - name: Publish test summary if: always() - uses: ./spinifex/.github/actions/junit-report + uses: $/.github/actions/junit-report with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml title: "Multi-Node E2E results" @@ -977,20 +977,20 @@ jobs: - name: Ship test results to Elasticsearch if: always() continue-on-error: true - uses: ./spinifex/.github/actions/junit-to-es + uses: $/.github/actions/junit-to-es with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml cell: multi - name: Analyze e2e failures if: always() - uses: ./spinifex/.github/actions/e2e-analyze + uses: $/.github/actions/e2e-analyze with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml log-dir: ${{ env.ARTIFACT_DIR }} title: "Multi-Node E2E failure analysis" - - uses: actions/upload-artifact@v7 + - uses: actions/upload-artifact@v7.0.2 if: always() with: name: e2e-multi-artifacts-${{ github.run_id }} @@ -1037,7 +1037,7 @@ jobs: - name: Upload tofu log if: always() - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v7.0.2 with: name: tofu-log-multi-${{ github.run_id }} path: ${{ env.TOFU_LOG }} @@ -1107,14 +1107,14 @@ jobs: # the aggregation script below treats an absent suite-status.txt as # "no failures from that leg". - name: Download single-node artifacts - uses: actions/download-artifact@v8 + uses: actions/download-artifact@v8.0.2 continue-on-error: true with: name: e2e-artifacts-${{ github.run_id }} path: ${{ github.workspace }}/es-summary-single - name: Download multi-node artifacts - uses: actions/download-artifact@v8 + uses: actions/download-artifact@v8.0.2 continue-on-error: true with: name: e2e-multi-artifacts-${{ github.run_id }} diff --git a/.github/workflows/gpu-e2e.yml b/.github/workflows/gpu-e2e.yml index 70b4067c0..9f13b4e4d 100644 --- a/.github/workflows/gpu-e2e.yml +++ b/.github/workflows/gpu-e2e.yml @@ -95,10 +95,10 @@ jobs: if: steps.gate.outputs.paused != 'true' run: sudo rm -rf --one-file-system "$GITHUB_WORKSPACE"/* - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 if: steps.gate.outputs.paused != 'true' - - uses: actions/setup-go@v7 + - uses: actions/setup-go@v7.0.0 if: steps.gate.outputs.paused != 'true' with: go-version-file: go.mod @@ -244,7 +244,7 @@ jobs: - name: Publish test summary if: always() && steps.gate.outputs.paused != 'true' - uses: ./.github/actions/junit-report + uses: $/.github/actions/junit-report with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml title: "GPU E2E results" @@ -252,20 +252,20 @@ jobs: - name: Ship test results to Elasticsearch if: always() && steps.gate.outputs.paused != 'true' continue-on-error: true - uses: ./.github/actions/junit-to-es + uses: $/.github/actions/junit-to-es with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml cell: gpu - name: Analyze e2e failures if: always() && steps.gate.outputs.paused != 'true' - uses: ./.github/actions/e2e-analyze + uses: $/.github/actions/e2e-analyze with: junit-glob: ${{ env.ARTIFACT_DIR }}/junit-*.xml log-dir: ${{ env.ARTIFACT_DIR }} title: "GPU E2E failure analysis" - - uses: actions/upload-artifact@v7 + - uses: actions/upload-artifact@v7.0.2 if: always() && steps.gate.outputs.paused != 'true' with: name: gpu-e2e-artifacts-${{ github.run_id }} diff --git a/.github/workflows/image-scripts.yml b/.github/workflows/image-scripts.yml index e2c89dd29..29efcf92d 100644 --- a/.github/workflows/image-scripts.yml +++ b/.github/workflows/image-scripts.yml @@ -29,7 +29,7 @@ jobs: steps: - name: Checkout Code - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 - name: Run image script tests + shellcheck run: make test-images @@ -46,10 +46,10 @@ jobs: steps: - name: Checkout Code - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 - name: Set up Go - uses: actions/setup-go@v7 + uses: actions/setup-go@v7.0.0 with: go-version-file: "go.mod" # Self-hosted: the module + build cache already persists on local diff --git a/.github/workflows/perf-3node.yml b/.github/workflows/perf-3node.yml index 702c0705b..43acee126 100644 --- a/.github/workflows/perf-3node.yml +++ b/.github/workflows/perf-3node.yml @@ -80,25 +80,25 @@ jobs: echo "TMPDIR=$E2E_ROOT/work" >> "$GITHUB_ENV" echo "PERF_RESULTS_ROOT=$E2E_ROOT/predastore-perf-3node-$GITHUB_RUN_ID" >> "$GITHUB_ENV" - - uses: actions/create-github-app-token@v3 + - uses: actions/create-github-app-token@v3.3.0 id: app-token with: client-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} repositories: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/mulga token: ${{ steps.app-token.outputs.token }} sparse-checkout: scripts/tofu-cluster path: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: path: spinifex - - uses: actions/setup-go@v7 + - uses: actions/setup-go@v7.0.0 with: go-version-file: spinifex/go.mod cache: false @@ -116,7 +116,7 @@ jobs: run: bash .github/resolve-sibling-refs.sh working-directory: spinifex - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 id: predastore with: repository: mulgadc/predastore @@ -366,7 +366,7 @@ jobs: # Report-only, matching cell-23: the baseline comparison and any # regression gate are future work once run-to-run spread is known from # real bare-metal runs. - - uses: actions/upload-artifact@v7 + - uses: actions/upload-artifact@v7.0.2 if: always() with: name: predastore-perf-3node-${{ github.run_id }} @@ -407,7 +407,7 @@ jobs: - name: Upload tofu log if: always() - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v7.0.2 with: name: tofu-log-perf3node-${{ github.run_id }} path: ${{ env.TOFU_LOG }} diff --git a/.github/workflows/publish-system-ami.yml b/.github/workflows/publish-system-ami.yml index 7ad3f91b3..1484fcbcc 100644 --- a/.github/workflows/publish-system-ami.yml +++ b/.github/workflows/publish-system-ami.yml @@ -78,7 +78,7 @@ jobs: steps: - name: Checkout Spinifex - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: path: spinifex @@ -87,35 +87,35 @@ jobs: run: bash spinifex/.github/resolve-release-sibling-refs.sh spinifex/go.mod - name: Checkout Viperblock - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/viperblock ref: ${{ steps.siblings.outputs.viperblock }} path: viperblock - name: Checkout Predastore - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/predastore ref: ${{ steps.siblings.outputs.predastore }} path: predastore - name: Checkout Northstar - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/northstar ref: ${{ steps.siblings.outputs.northstar }} path: northstar - name: Checkout Bluebottle - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/bluebottle ref: ${{ steps.siblings.outputs.bluebottle }} path: bluebottle - name: Setup Go - uses: actions/setup-go@v7 + uses: actions/setup-go@v7.0.0 with: go-version-file: "spinifex/go.mod" # Self-hosted runner: the Go module + build cache already persists on diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eaa739af9..e1e247b50 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-26.04 steps: - name: Checkout Spinifex - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: path: spinifex @@ -21,38 +21,38 @@ jobs: run: bash spinifex/.github/resolve-release-sibling-refs.sh spinifex/go.mod - name: Checkout Predastore - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/predastore ref: ${{ steps.siblings.outputs.predastore }} path: predastore - name: Checkout Viperblock - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/viperblock ref: ${{ steps.siblings.outputs.viperblock }} path: viperblock - name: Checkout Northstar - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/northstar ref: ${{ steps.siblings.outputs.northstar }} path: northstar - name: Checkout Bluebottle - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/bluebottle ref: ${{ steps.siblings.outputs.bluebottle }} path: bluebottle - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@v4.4.1 - name: Set up Go - uses: actions/setup-go@v7 + uses: actions/setup-go@v7.0.0 with: go-version-file: spinifex/go.mod @@ -65,7 +65,7 @@ jobs: run: cd spinifex && make distro-amd64 VERSION="$VERSION" - name: Upload amd64 Artifacts - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v7.0.2 with: name: distro-amd64 path: | @@ -77,7 +77,7 @@ jobs: runs-on: ubuntu-26.04-arm steps: - name: Checkout Spinifex - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: path: spinifex @@ -86,35 +86,35 @@ jobs: run: bash spinifex/.github/resolve-release-sibling-refs.sh spinifex/go.mod - name: Checkout Predastore - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/predastore ref: ${{ steps.siblings.outputs.predastore }} path: predastore - name: Checkout Viperblock - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/viperblock ref: ${{ steps.siblings.outputs.viperblock }} path: viperblock - name: Checkout Northstar - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/northstar ref: ${{ steps.siblings.outputs.northstar }} path: northstar - name: Checkout Bluebottle - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/bluebottle ref: ${{ steps.siblings.outputs.bluebottle }} path: bluebottle - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@v4.4.1 - name: Build arm64 Tarball env: @@ -122,7 +122,7 @@ jobs: run: cd spinifex && make distro-arm64 VERSION="$VERSION" - name: Upload arm64 Artifacts - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v7.0.2 with: name: distro-arm64 path: | @@ -134,19 +134,19 @@ jobs: runs-on: ubuntu-26.04 steps: - name: Download amd64 Artifacts - uses: actions/download-artifact@v8 + uses: actions/download-artifact@v8.0.2 with: name: distro-amd64 path: artifacts - name: Download arm64 Artifacts - uses: actions/download-artifact@v8 + uses: actions/download-artifact@v8.0.2 with: name: distro-arm64 path: artifacts - name: Create Draft GitHub Release - uses: softprops/action-gh-release@v3 + uses: softprops/action-gh-release@v3.0.3 with: draft: true files: | @@ -156,7 +156,7 @@ jobs: generate_release_notes: true - name: Upload Tarball for Verify Job - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@v7.0.2 with: name: release-assets path: artifacts/ @@ -183,14 +183,14 @@ jobs: | sort -r | xargs -r -I{} sudo umount -l -R {} || true sudo rm -rf --one-file-system "$GITHUB_WORKSPACE"/* - - uses: actions/create-github-app-token@v3 + - uses: actions/create-github-app-token@v3.3.0 id: app-token with: client-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} repositories: mulga - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: repository: mulgadc/mulga token: ${{ steps.app-token.outputs.token }} @@ -199,13 +199,13 @@ jobs: # Only the shared shell helpers: this job builds nothing from source, but # it drives the same libvirt provider the e2e cells retry around. - - uses: actions/checkout@v7 + - uses: actions/checkout@v7.0.1 with: sparse-checkout: .github/scripts path: spinifex - name: Download Release Assets - uses: actions/download-artifact@v8 + uses: actions/download-artifact@v8.0.2 with: name: release-assets path: release-assets @@ -310,7 +310,7 @@ jobs: sudo umount -l "${ROOTFS}/proc" 2>/dev/null || true sudo rm -rf --one-file-system "$GITHUB_WORKSPACE"/* - - uses: actions/create-github-app-token@v3 + - uses: actions/create-github-app-token@v3.3.0 id: app-token with: client-id: ${{ secrets.APP_ID }} @@ -318,7 +318,7 @@ jobs: repositories: mulga - name: Checkout Spinifex - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: path: spinifex ref: ${{ github.ref }} @@ -328,35 +328,35 @@ jobs: run: bash spinifex/.github/resolve-release-sibling-refs.sh spinifex/go.mod - name: Checkout Predastore - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/predastore ref: ${{ steps.siblings.outputs.predastore }} path: predastore - name: Checkout Viperblock - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/viperblock ref: ${{ steps.siblings.outputs.viperblock }} path: viperblock - name: Checkout Northstar - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/northstar ref: ${{ steps.siblings.outputs.northstar }} path: northstar - name: Checkout Bluebottle - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/bluebottle ref: ${{ steps.siblings.outputs.bluebottle }} path: bluebottle - name: Checkout Mulga iso-builder - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/mulga token: ${{ steps.app-token.outputs.token }} @@ -367,7 +367,7 @@ jobs: run: sudo make -C mulga/scripts/iso-builder clean - name: Set up Go - uses: actions/setup-go@v7 + uses: actions/setup-go@v7.0.0 with: go-version-file: spinifex/go.mod cache: false diff --git a/.github/workflows/segscan-oracle.yml b/.github/workflows/segscan-oracle.yml index c5ca89f6f..083f8b072 100644 --- a/.github/workflows/segscan-oracle.yml +++ b/.github/workflows/segscan-oracle.yml @@ -25,7 +25,7 @@ jobs: steps: - name: Checkout Spinifex - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: path: spinifex fetch-depth: 2 @@ -38,34 +38,34 @@ jobs: working-directory: spinifex - name: Checkout Viperblock - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/viperblock ref: ${{ steps.siblings.outputs.viperblock }} path: viperblock - name: Checkout Predastore - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/predastore ref: ${{ steps.siblings.outputs.predastore }} path: predastore - name: Checkout Northstar - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/northstar ref: ${{ steps.siblings.outputs.northstar }} path: northstar - name: Checkout Bluebottle - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/bluebottle ref: ${{ steps.siblings.outputs.bluebottle }} path: bluebottle - - uses: actions/create-github-app-token@v3 + - uses: actions/create-github-app-token@v3.3.0 id: app-token with: client-id: ${{ secrets.APP_ID }} @@ -73,7 +73,7 @@ jobs: repositories: mulga - name: Checkout Mulga (scripts/segscan only) - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/mulga token: ${{ steps.app-token.outputs.token }} @@ -81,7 +81,7 @@ jobs: path: mulga - name: Setup Go - uses: actions/setup-go@v7 + uses: actions/setup-go@v7.0.0 with: cache-dependency-path: "spinifex/go.sum" go-version-file: "spinifex/go.mod" diff --git a/.github/workflows/spinifex.yml b/.github/workflows/spinifex.yml index 72ade66bc..3cf81b2e7 100644 --- a/.github/workflows/spinifex.yml +++ b/.github/workflows/spinifex.yml @@ -27,7 +27,7 @@ jobs: steps: - name: Checkout Spinifex - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: path: spinifex fetch-depth: 2 @@ -40,28 +40,28 @@ jobs: working-directory: spinifex - name: Checkout Viperblock - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/viperblock ref: ${{ steps.siblings.outputs.viperblock }} path: viperblock - name: Checkout Predastore - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/predastore ref: ${{ steps.siblings.outputs.predastore }} path: predastore - name: Checkout Northstar - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/northstar ref: ${{ steps.siblings.outputs.northstar }} path: northstar - name: Checkout Bluebottle - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/bluebottle ref: ${{ steps.siblings.outputs.bluebottle }} @@ -71,7 +71,7 @@ jobs: # the last go.sum change and never refreshed it. Both caches are managed # below instead. - name: Setup Go - uses: actions/setup-go@v7 + uses: actions/setup-go@v7.0.0 with: go-version-file: "spinifex/go.mod" cache: false @@ -80,7 +80,7 @@ jobs: # setup-go hashed spinifex/go.sum alone, which left the sibling modules' # dependencies out of the key and re-downloading on every run. - name: Cache Go modules - uses: actions/cache@v6 + uses: actions/cache@v6.1.0 with: path: ~/go/pkg/mod key: gomod-${{ hashFiles('spinifex/go.sum', 'viperblock/go.sum', 'predastore/go.sum', 'northstar/go.sum', 'bluebottle/go.sum') }} @@ -93,7 +93,7 @@ jobs: # a PR reads the base branch's entry without spending a minute uploading # one only that PR would ever read. - name: Restore Go build cache - uses: actions/cache/restore@v6 + uses: actions/cache/restore@v6.1.0 with: path: ~/.cache/go-build key: gobuild-${{ github.job }}-${{ github.run_id }} @@ -150,7 +150,7 @@ jobs: - name: Save Go build cache if: ${{ !cancelled() && (github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/main') }} - uses: actions/cache/save@v6 + uses: actions/cache/save@v6.1.0 with: path: ~/.cache/go-build key: gobuild-${{ github.job }}-${{ github.run_id }} @@ -161,7 +161,7 @@ jobs: steps: - name: Checkout Spinifex - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: path: spinifex @@ -173,28 +173,28 @@ jobs: working-directory: spinifex - name: Checkout Viperblock - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/viperblock ref: ${{ steps.siblings.outputs.viperblock }} path: viperblock - name: Checkout Predastore - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/predastore ref: ${{ steps.siblings.outputs.predastore }} path: predastore - name: Checkout Northstar - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/northstar ref: ${{ steps.siblings.outputs.northstar }} path: northstar - name: Checkout Bluebottle - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/bluebottle ref: ${{ steps.siblings.outputs.bluebottle }} @@ -204,7 +204,7 @@ jobs: # the last go.sum change and never refreshed it. Both caches are managed # below instead. - name: Setup Go - uses: actions/setup-go@v7 + uses: actions/setup-go@v7.0.0 with: go-version-file: "spinifex/go.mod" cache: false @@ -213,7 +213,7 @@ jobs: # setup-go hashed spinifex/go.sum alone, which left the sibling modules' # dependencies out of the key and re-downloading on every run. - name: Cache Go modules - uses: actions/cache@v6 + uses: actions/cache@v6.1.0 with: path: ~/go/pkg/mod key: gomod-${{ hashFiles('spinifex/go.sum', 'viperblock/go.sum', 'predastore/go.sum', 'northstar/go.sum', 'bluebottle/go.sum') }} @@ -226,7 +226,7 @@ jobs: # a PR reads the base branch's entry without spending a minute uploading # one only that PR would ever read. - name: Restore Go build cache - uses: actions/cache/restore@v6 + uses: actions/cache/restore@v6.1.0 with: path: ~/.cache/go-build key: gobuild-${{ github.job }}-${{ github.run_id }} @@ -251,7 +251,7 @@ jobs: - name: Save Go build cache if: ${{ !cancelled() && (github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/main') }} - uses: actions/cache/save@v6 + uses: actions/cache/save@v6.1.0 with: path: ~/.cache/go-build key: gobuild-${{ github.job }}-${{ github.run_id }} @@ -262,7 +262,7 @@ jobs: steps: - name: Checkout Spinifex - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: path: spinifex fetch-depth: 2 @@ -275,28 +275,28 @@ jobs: working-directory: spinifex - name: Checkout Viperblock - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/viperblock ref: ${{ steps.siblings.outputs.viperblock }} path: viperblock - name: Checkout Predastore - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/predastore ref: ${{ steps.siblings.outputs.predastore }} path: predastore - name: Checkout Northstar - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/northstar ref: ${{ steps.siblings.outputs.northstar }} path: northstar - name: Checkout Bluebottle - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: repository: mulgadc/bluebottle ref: ${{ steps.siblings.outputs.bluebottle }} @@ -306,7 +306,7 @@ jobs: # the last go.sum change and never refreshed it. Both caches are managed # below instead. - name: Setup Go - uses: actions/setup-go@v7 + uses: actions/setup-go@v7.0.0 with: go-version-file: "spinifex/go.mod" cache: false @@ -315,7 +315,7 @@ jobs: # setup-go hashed spinifex/go.sum alone, which left the sibling modules' # dependencies out of the key and re-downloading on every run. - name: Cache Go modules - uses: actions/cache@v6 + uses: actions/cache@v6.1.0 with: path: ~/go/pkg/mod key: gomod-${{ hashFiles('spinifex/go.sum', 'viperblock/go.sum', 'predastore/go.sum', 'northstar/go.sum', 'bluebottle/go.sum') }} @@ -328,7 +328,7 @@ jobs: # a PR reads the base branch's entry without spending a minute uploading # one only that PR would ever read. - name: Restore Go build cache - uses: actions/cache/restore@v6 + uses: actions/cache/restore@v6.1.0 with: path: ~/.cache/go-build key: gobuild-${{ github.job }}-${{ github.run_id }} @@ -338,7 +338,7 @@ jobs: run: go work init ./spinifex ./viperblock ./predastore ./northstar ./bluebottle - name: Lint - uses: golangci/golangci-lint-action@v9 + uses: golangci/golangci-lint-action@v9.3.0 with: version: v2.14.0 working-directory: spinifex @@ -363,7 +363,7 @@ jobs: - name: Save Go build cache if: ${{ !cancelled() && (github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/main') }} - uses: actions/cache/save@v6 + uses: actions/cache/save@v6.1.0 with: path: ~/.cache/go-build key: gobuild-${{ github.job }}-${{ github.run_id }} diff --git a/.github/workflows/ui.yml b/.github/workflows/ui.yml index 3781df04d..cb86d9760 100644 --- a/.github/workflows/ui.yml +++ b/.github/workflows/ui.yml @@ -30,17 +30,17 @@ jobs: steps: - name: Checkout Code - uses: actions/checkout@v7 + uses: actions/checkout@v7.0.1 with: sparse-checkout: spinifex/services/spinifexui/frontend - name: Setup pnpm - uses: pnpm/action-setup@v6 + uses: pnpm/action-setup@v6.0.10 with: package_json_file: spinifex/services/spinifexui/frontend/package.json - name: Setup Node.js - uses: actions/setup-node@v7 + uses: actions/setup-node@v7.1.0 with: cache: "pnpm" cache-dependency-path: spinifex/services/spinifexui/frontend/pnpm-lock.yaml