Skip to content

Commit 6aa313a

Browse files
committed
[upgrade] docker.yml to latest version
1 parent 8e6120d commit 6aa313a

1 file changed

Lines changed: 33 additions & 16 deletions

File tree

.github/workflows/docker.yml

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,6 @@ on:
2020
required: false
2121
default: 'false'
2222

23-
image:
24-
description: 'set IMAGE'
25-
required: false
26-
2723
uid:
2824
description: 'set IMAGE_UID'
2925
required: false
@@ -40,6 +36,19 @@ on:
4036
description: 'suffix for semver tags'
4137
required: false
4238

39+
dockerfile:
40+
description: 'dockerfile to build from'
41+
required: false
42+
default: 'arch.dockerfile'
43+
44+
tag:
45+
description: 'single tag'
46+
required: false
47+
48+
version:
49+
description: 'single version'
50+
required: false
51+
4352
jobs:
4453
docker:
4554
runs-on: ubuntu-22.04
@@ -97,7 +106,7 @@ jobs:
97106
98107
const docker = {
99108
image:{
100-
name:(opt.input?.image || opt.dot.image),
109+
name:opt.dot.image,
101110
arch:(opt.dot.arch || 'linux/amd64,linux/arm64'),
102111
prefix:((opt.input?.semverprefix) ? `${opt.input?.semverprefix}-` : ''),
103112
suffix:((opt.input?.semversuffix) ? `-${opt.input?.semversuffix}` : ''),
@@ -107,7 +116,7 @@ jobs:
107116
app:{
108117
image:opt.dot.image,
109118
name:opt.dot.name,
110-
version:opt.dot.semver.version,
119+
version:(opt.input?.version || opt.dot.semver.version),
111120
root:opt.dot.root,
112121
UID:(opt.input?.uid || 1000),
113122
GID:(opt.input?.gid || 1000),
@@ -124,15 +133,22 @@ jobs:
124133
docker.app.suffix = docker.image.suffix;
125134
126135
// setup tags
127-
const semver = opt.dot.semver.version.split('.');
128-
docker.image.tags.push(`${context.sha.substring(0,7)}`);
129-
if(Array.isArray(semver)){
130-
if(semver.length >= 1) docker.image.tags.push(`${semver[0]}`);
131-
if(semver.length >= 2) docker.image.tags.push(`${semver[0]}.${semver[1]}`);
132-
if(semver.length >= 3) docker.image.tags.push(`${semver[0]}.${semver[1]}.${semver[2]}`);
136+
if(opt.input?.dockerfile !== 'arch.dockerfile' && opt.input?.tag){
137+
docker.image.tags.push(`${context.sha.substring(0,7)}`);
138+
docker.image.tags.push(opt.input.tag);
139+
docker.image.tags.push(`${opt.input.tag}-${docker.app.version}`);
140+
docker.cache.name = `${docker.image.name}:buildcache-${opt.input.tag}`;
141+
}else{
142+
const semver = opt.dot.semver.version.split('.');
143+
docker.image.tags.push(`${context.sha.substring(0,7)}`);
144+
if(Array.isArray(semver)){
145+
if(semver.length >= 1) docker.image.tags.push(`${semver[0]}`);
146+
if(semver.length >= 2) docker.image.tags.push(`${semver[0]}.${semver[1]}`);
147+
if(semver.length >= 3) docker.image.tags.push(`${semver[0]}.${semver[1]}.${semver[2]}`);
148+
}
149+
if(opt.dot.semver?.stable && new RegExp(opt.dot.semver.stable, 'ig').test(docker.image.tags.join(','))) docker.image.tags.push('stable');
150+
if(opt.dot.semver?.latest && new RegExp(opt.dot.semver.latest, 'ig').test(docker.image.tags.join(','))) docker.image.tags.push('latest');
133151
}
134-
if(opt.dot.semver?.stable && new RegExp(opt.dot.semver.stable, 'ig').test(docker.image.tags.join(','))) docker.image.tags.push('stable');
135-
if(opt.dot.semver?.latest && new RegExp(opt.dot.semver.latest, 'ig').test(docker.image.tags.join(','))) docker.image.tags.push('latest');
136152
137153
for(let i=0; i<docker.image.tags.length; i++){
138154
docker.image.tags[i] = `${docker.image.name}:${docker.image.prefix}${docker.image.tags[i]}${docker.image.suffix}`;
@@ -154,6 +170,7 @@ jobs:
154170
core.exportVariable('DOCKER_IMAGE_TAGS', docker.image.tags.join(','));
155171
core.exportVariable('DOCKER_IMAGE_DESCRIPTION', docker.image.description);
156172
core.exportVariable('DOCKER_IMAGE_ARGUMENTS', arguments.join("\r\n"));
173+
core.exportVariable('DOCKER_IMAGE_DOCKERFILE', opt.input?.dockerfile || 'arch.dockerfile');
157174
158175
core.exportVariable('WORKFLOW_CREATE_RELEASE', (opt.input?.release || true));
159176
core.exportVariable('WORKFLOW_CREATE_README', (opt.input?.readme || true));
@@ -182,7 +199,7 @@ jobs:
182199
uses: docker/build-push-action@67a2d409c0a876cbe6b11854e3e25193efe4e62d
183200
with:
184201
context: .
185-
file: arch.dockerfile
202+
file: ${{ env.DOCKER_IMAGE_DOCKERFILE }}
186203
push: true
187204
platforms: ${{ env.DOCKER_IMAGE_ARCH }}
188205
cache-from: type=registry,ref=${{ env.DOCKER_CACHE_NAME }}
@@ -218,7 +235,7 @@ jobs:
218235
uses: docker/build-push-action@67a2d409c0a876cbe6b11854e3e25193efe4e62d
219236
with:
220237
context: .
221-
file: arch.dockerfile
238+
file: ${{ env.DOCKER_IMAGE_DOCKERFILE }}
222239
push: true
223240
sbom: true
224241
provenance: mode=max

0 commit comments

Comments
 (0)