@@ -5,56 +5,87 @@ inputs:
5
5
required : true
6
6
deploy-token :
7
7
required : true
8
- cache-key :
8
+ image-name :
9
9
required : true
10
10
11
11
runs :
12
12
using : composite
13
13
steps :
14
14
- name : Set up QEMU
15
15
uses : docker/setup-qemu-action@v3
16
+
16
17
- name : Set up Docker Buildx
17
18
uses : docker/setup-buildx-action@v3
18
19
with :
19
20
driver-opts : image=moby/buildkit:v0.13.0
21
+
20
22
- name : Login to ghcr.io
21
23
uses : docker/login-action@v3
22
24
with :
23
25
registry : ghcr.io
24
26
username : ${{ inputs.deploy-user }}
25
27
password : ${{ inputs.deploy-token }}
28
+
26
29
- name : Set SOURCE_DATE_EPOCH
27
30
run : |
28
31
echo "SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)" >> $GITHUB_ENV
29
32
shell : bash
33
+
30
34
- name : Determine Debian tag
31
35
run : |
32
36
DEBIAN_RELEASE=$(grep -m 1 'ARG DEBIAN_TAG=' Dockerfile | sed 's/.*DEBIAN_TAG=\(.*\)-.*/\1/')
33
37
echo "DEBIAN_TAG=$(podman image search --list-tags debian --limit 1000000000 | \
34
38
grep "$DEBIAN_RELEASE-.*-slim" | sort -r | head -1 | sed 's/.*[ ]\+//')" >> $GITHUB_ENV
35
39
shell : bash
40
+
36
41
- name : Prepare repository for COPY-in
37
42
run : |
38
43
git clone . /home/runner/kas-clone
39
44
shell : bash
45
+
46
+ - name : Define image description
47
+ run : |
48
+ case ${{ inputs.image-name }} in
49
+ kas)
50
+ echo "IMAGE_DESCRIPTION=kas build environment for Yocto/OpenEmbedded projects" >> $GITHUB_ENV
51
+ ;;
52
+ kas-isar)
53
+ echo "IMAGE_DESCRIPTION=kas build environment for isar-based Debian projects" >> $GITHUB_ENV
54
+ ;;
55
+ esac
56
+ shell : bash
57
+
58
+ - name : Extract metadata
59
+ id : meta
60
+ uses : docker/metadata-action@v5
61
+ with :
62
+ annotations : |
63
+ org.opencontainers.image.description=${{ env.IMAGE_DESCRIPTION }}
64
+ org.opencontainers.image.licenses=MIT and others
65
+ env :
66
+ DOCKER_METADATA_ANNOTATIONS_LEVELS : manifest,index
67
+
40
68
- name : Cache var-cache-apt
41
69
id : cache-var-cache-apt
42
70
uses : actions/cache@v4
43
71
with :
44
72
path : var-cache-apt
45
- key : var-cache-apt-${{ env.DEBIAN_TAG }}-${{ inputs.cache-key }}
73
+ key : var-cache-apt-${{ env.DEBIAN_TAG }}-${{ inputs.image-name }}
74
+
46
75
- name : Cache var-lib-apt
47
76
id : cache-var-lib-apt
48
77
uses : actions/cache@v4
49
78
with :
50
79
path : var-lib-apt
51
- key : var-lib-apt-${{ env.DEBIAN_TAG }}-${{ inputs.cache-key }}
80
+ key : var-lib-apt-${{ env.DEBIAN_TAG }}-${{ inputs.image-name }}
81
+
52
82
- name : Inject var-cache-apt into docker
53
83
uses :
reproducible-containers/[email protected]
54
84
with :
55
85
cache-source : var-cache-apt
56
86
cache-target : /var/cache/apt
57
87
skip-extraction : ${{ steps.cache-var-cache-apt.outputs.cache-hit }}
88
+
58
89
- name : Inject var-lib-apt into docker
59
90
uses :
reproducible-containers/[email protected]
60
91
with :
0 commit comments