File tree Expand file tree Collapse file tree 1 file changed +55
-0
lines changed
Expand file tree Collapse file tree 1 file changed +55
-0
lines changed Original file line number Diff line number Diff line change 1+ name : Publish docker image
2+
3+ on :
4+ workflow_dispatch :
5+ inputs :
6+ release_tag :
7+ description : ' Tag to release'
8+ required : true
9+ type : string
10+
11+ permissions :
12+ contents : read
13+ packages : write
14+
15+ jobs :
16+ build :
17+ runs-on : ubuntu-latest
18+ if : startsWith(github.event.inputs.release_tag, 'v')
19+ steps :
20+ - name : Harden the runner (Audit all outbound calls)
21+ uses : step-security/harden-runner@v2
22+ with :
23+ egress-policy : audit
24+
25+ - name : Checkout
26+ uses : actions/checkout@v6
27+ - name : Validate tag format
28+ run : |
29+ TAG=${{ github.event.inputs.release_tag }}
30+ if ! echo "$TAG" | grep -Eq '^v[0-9]+\.[0-9]+\.[0-9]+$'; then
31+ echo "❌ Invalid tag format: $TAG"
32+ exit 1
33+ fi
34+ echo "✅ Valid semver tag: $TAG"
35+ - name : Log in to GitHub Container Registry
36+ uses : step-security/docker-login-action@v3
37+ with :
38+ registry : ghcr.io
39+ username : ${{ github.actor }}
40+ password : ${{ secrets.GITHUB_TOKEN }}
41+
42+ - name : Set up QEMU for ARM builds
43+ uses : step-security/setup-qemu-action@v3
44+
45+ - name : Set up Docker Buildx
46+ uses : step-security/setup-buildx-action@v3
47+
48+ - name : Build and push Docker image
49+ uses : step-security/docker-build-push-action@v6
50+ with :
51+ context : .
52+ push : true
53+ platforms : linux/amd64,linux/arm64
54+ tags : |
55+ ghcr.io/${{ github.repository }}:${{ github.event.inputs.release_tag }}
You can’t perform that action at this time.
0 commit comments