Skip to content

Commit 18c96cf

Browse files
committed
workflow: improve build.yaml
1 parent 12d3507 commit 18c96cf

File tree

2 files changed

+46
-16
lines changed

2 files changed

+46
-16
lines changed

.github/workflows/build.yaml

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,20 @@ on:
55

66
jobs:
77
docker-build:
8-
runs-on: ubuntu-latest
8+
runs-on: ${{ matrix.runs_on }}
99
strategy:
10+
fail-fast: false
1011
matrix:
1112
variant: [bookworm, bullseye]
13+
target: [arm64, x86_64]
14+
include:
15+
- target: arm64
16+
runs_on: ubuntu-24.04-arm
17+
- target: x86_64
18+
runs_on: ubuntu-24.04
1219
env:
1320
VERSION: ${{ matrix.variant }}
21+
TAG: ${{ matrix.variant }}-run-${{ github.run_number }}
1422
steps:
1523
- name: Checkout
1624
uses: actions/checkout@v3
@@ -21,7 +29,33 @@ jobs:
2129
with:
2230
username: ${{ secrets.DOCKERHUB_USERNAME }}
2331
password: ${{ secrets.DOCKERHUB_TOKEN }}
24-
- name: Build targets
25-
run: make all
26-
- name: Push targets
32+
- name: Build target
33+
run: make ${{ matrix.target }}
34+
35+
manifest:
36+
runs-on: ubuntu-latest
37+
needs: [docker-build]
38+
strategy:
39+
matrix:
40+
variant: [bookworm, bullseye]
41+
include:
42+
- variant: bookworm
43+
is_latest: true
44+
env:
45+
VERSION: ${{ matrix.variant }}
46+
TAG: ${{ matrix.variant }}-run-${{ github.run_number }}
47+
steps:
48+
- name: Checkout
49+
uses: actions/checkout@v3
50+
- name: Login to Docker Hub
51+
uses: docker/login-action@v3
52+
with:
53+
username: ${{ secrets.DOCKERHUB_USERNAME }}
54+
password: ${{ secrets.DOCKERHUB_TOKEN }}
55+
- name: Create ${{ env.TAG }} manifest
2756
run: make tag
57+
- name: Create ${{ matrix.variant }} manifest
58+
run: make tag MANIFEST_TAG=${{ matrix.variant }}
59+
- name: Create latest
60+
if: ${{ matrix.is_latest }}
61+
run: make tag MANIFEST_TAG=latest

Makefile

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
REPO := ayufan/rock64-dockerfiles
22
TARGETS := arm64 x86_64
3+
TAG ?= $(VERSION)
4+
MANIFEST_TAG ?= $(TAG)
35

46
ifeq (,$(VERSION))
57
$(error "Use `make <target> VERSION=bookworm`, or `make <target> VERSION=bullseye`")
@@ -16,18 +18,12 @@ arm64: DOCKER_ARCH=arm64v8/
1618
x86_64: DOCKER_ARCH=amd64/
1719

1820
$(TARGETS):
19-
docker build --build-arg DOCKER_ARCH=$(DOCKER_ARCH) --build-arg DEBIAN_VERSION=$(VERSION) --tag $(REPO):$(VERSION)-$@ .
20-
docker push $(REPO):$(VERSION)-$@
21+
docker build --build-arg DOCKER_ARCH=$(DOCKER_ARCH) --build-arg DEBIAN_VERSION=$(VERSION) --tag $(REPO):$(TAG)-$@ .
22+
docker push $(REPO):$(TAG)-$@
2123

2224
tag:
2325
-rm -rf ~/.docker/manifests
24-
docker manifest create $(REPO):$(VERSION) \
25-
$(addprefix $(REPO):$(VERSION)-, $(TARGETS))
26-
docker manifest push $(REPO):$(VERSION)
27-
docker pull $(REPO):$(VERSION)
28-
29-
latest: tag
30-
docker manifest create $(REPO):latest \
31-
$(addprefix $(REPO):$(VERSION)-, $(TARGETS))
32-
docker manifest push $(REPO):latest
33-
docker pull $(REPO):latest
26+
docker manifest create $(REPO):$(MANIFEST_TAG) \
27+
$(addprefix $(REPO):$(TAG)-, $(TARGETS))
28+
docker manifest push $(REPO):$(MANIFEST_TAG)
29+
docker pull $(REPO):$(MANIFEST_TAG)

0 commit comments

Comments
 (0)