11---
2+ # yaml-language-server: $schema=https://www.schemastore.org/github-workflow.json
23name : latest
34
45" on " :
6+ workflow_dispatch :
57 push :
68 branches :
79 - master
@@ -14,15 +16,28 @@ name: latest
1416 paths :
1517 - latest/*
1618 - .github/workflows/docker.yml
17- workflow_dispatch :
19+
20+ permissions :
21+ contents : read
22+ packages : write
1823
1924jobs :
2025 docker :
2126 runs-on : ubuntu-latest
2227
28+ strategy :
29+ fail-fast : false
30+ matrix :
31+ variant :
32+ - arch : amd64
33+ platform : linux/amd64
34+ - arch : arm64
35+ platform : linux/arm64
36+ - arch : arm
37+ platform : linux/arm/v6
38+
2339 steps :
2440 - name : Checkout source
25- id : source
2641 uses : actions/checkout@v5
2742
2843 - name : Docker meta
@@ -39,23 +54,20 @@ jobs:
3954 maintainer=Thomas Boerger <thomas@webhippie.de>
4055
4156 - name : Setup QEMU
42- id : qemu
4357 uses : docker/setup-qemu-action@v3
4458
4559 - name : Setup Buildx
4660 id : buildx
4761 uses : docker/setup-buildx-action@v3
4862
4963 - name : Hub login
50- id : login1
5164 uses : docker/login-action@v3
5265 if : github.event_name != 'pull_request'
5366 with :
5467 username : ${{ secrets.DOCKER_USERNAME }}
5568 password : ${{ secrets.DOCKER_PASSWORD }}
5669
5770 - name : Quay login
58- id : login2
5971 uses : docker/login-action@v3
6072 if : github.event_name != 'pull_request'
6173 with :
@@ -64,66 +76,41 @@ jobs:
6476 password : ${{ secrets.QUAY_PASSWORD }}
6577
6678 - name : Ghcr login
67- id : login3
6879 uses : docker/login-action@v3
6980 if : github.event_name != 'pull_request'
7081 with :
7182 registry : ghcr.io
7283 username : ${{ github.actor }}
7384 password : ${{ secrets.GITHUB_TOKEN }}
7485
75- - name : Build amd64
76- id : amd64
86+ - name : Build image
7787 uses : docker/build-push-action@v6
7888 with :
7989 builder : ${{ steps.buildx.outputs.name }}
8090 context : latest/
8191 provenance : false
82- file : latest/Dockerfile.amd64
83- platforms : linux/amd64
92+ file : latest/Dockerfile.${{ matrix.variant.arch }}
93+ platforms : ${{ matrix.variant.platform }}
8494 push : ${{ github.event_name != 'pull_request' }}
8595 labels : ${{ steps.meta.outputs.labels }}
8696 tags : |
87- webhippie/python:latest-amd64
88- quay.io/webhippie/python:latest-amd64
89- ghcr.io/dockhippie/python:latest-amd64
97+ webhippie/python:latest-${{ matrix.variant.arch }}
98+ quay.io/webhippie/python:latest-${{ matrix.variant.arch }}
99+ ghcr.io/dockhippie/python:latest-${{ matrix.variant.arch }}
90100
91- - name : Build arm64
92- id : arm64
93- uses : docker/build-push-action@v6
94- with :
95- builder : ${{ steps.buildx.outputs.name }}
96- context : latest/
97- provenance : false
98- file : latest/Dockerfile.arm64
99- platforms : linux/arm64
100- push : ${{ github.event_name != 'pull_request' }}
101- labels : ${{ steps.meta.outputs.labels }}
102- tags : |
103- webhippie/python:latest-arm64
104- quay.io/webhippie/python:latest-arm64
105- ghcr.io/dockhippie/python:latest-arm64
101+ manifest :
102+ runs-on : ubuntu-latest
103+ if : github.event_name != 'pull_request'
106104
107- - name : Build arm
108- id : arm
109- uses : docker/build-push-action@v6
110- with :
111- builder : ${{ steps.buildx.outputs.name }}
112- context : latest/
113- provenance : false
114- file : latest/Dockerfile.arm
115- platforms : linux/arm/v6
116- push : ${{ github.event_name != 'pull_request' }}
117- labels : ${{ steps.meta.outputs.labels }}
118- tags : |
119- webhippie/python:latest-arm
120- quay.io/webhippie/python:latest-arm
121- ghcr.io/dockhippie/python:latest-arm
105+ needs :
106+ - docker
107+
108+ steps :
109+ - name : Checkout source
110+ uses : actions/checkout@v5
122111
123112 - name : Hub manifest
124- id : manifest1
125113 uses : actionhippie/manifest@v1
126- if : github.event_name != 'pull_request'
127114 with :
128115 username : ${{ secrets.DOCKER_USERNAME }}
129116 password : ${{ secrets.DOCKER_PASSWORD }}
@@ -133,9 +120,7 @@ jobs:
133120 ignore_missing : true
134121
135122 - name : Quay manifest
136- id : manifest2
137123 uses : actionhippie/manifest@v1
138- if : github.event_name != 'pull_request'
139124 with :
140125 username : ${{ secrets.QUAY_USERNAME }}
141126 password : ${{ secrets.QUAY_PASSWORD }}
@@ -145,9 +130,7 @@ jobs:
145130 ignore_missing : true
146131
147132 - name : Ghcr manifest
148- id : manifest3
149133 uses : actionhippie/manifest@v1
150- if : github.event_name != 'pull_request'
151134 with :
152135 username : ${{ github.actor }}
153136 password : ${{ secrets.GITHUB_TOKEN }}
0 commit comments