-
Notifications
You must be signed in to change notification settings - Fork 1
51 lines (46 loc) · 1.86 KB
/
Copy pathbuild-all.yml
File metadata and controls
51 lines (46 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Rebuild and publish every historical version of this harness.
#
# Versions are git tags (`harness-release-*`, created automatically by build.yml) plus the current `main`.
# Each is (re)built and published through Bowtie's reusable `harness-ci.yml` workflow.
# Run this manually to backfill images, e.g. right after extracting a harness that had a `matrix-versions.json`.
name: Build All Versions
on:
workflow_dispatch:
permissions: {}
jobs:
versions:
name: Collect available versions
runs-on: ubuntu-latest
outputs:
revisions: ${{ steps.revisions.outputs.value }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
fetch-depth: 0
fetch-tags: true
- name: Collect available versions
id: revisions
run: |
# Only the auto-created per-version release tags, plus current `main`.
tags=$(jq -c -n '$ARGS.positional + ["main"]' --args $(git tag --list 'harness-release-*'))
echo "value=${tags}" >> "$GITHUB_OUTPUT"
build:
name: Build
needs: versions
strategy:
# Backfill as many versions as possible; don't abort the rest on one failure.
fail-fast: false
matrix:
revision: ${{ fromJson(needs.versions.outputs.revisions) }}
permissions:
id-token: write # needed for build provenance attestation
contents: read # needed for actions/checkout
attestations: write # needed for build provenance attestation
packages: write # needed for pushing to ghcr.io
artifact-metadata: write # needed for build provenance attestation
uses: bowtie-json-schema/bowtie/.github/workflows/harness-ci.yml@a0ae283dca0a0d0eb2381a886d5499162f33c82a # main
with:
ref: ${{ matrix.revision }}
publish: true
is-latest: ${{ matrix.revision == 'main' }}