3
3
// Docker manifest #{name}/Dockerfile
4
4
// ECR repository: #{name}
5
5
6
- local runnersMap = {
7
- 'linux/amd64' : 'ubuntu-24.04' ,
8
- 'linux/arm64' : 'ubuntu-24.04-arm' ,
9
- };
6
+ function (name, region='ap-northeast-1' , platforms=['linux/arm64' ]) {
7
+ common:: {
8
+ setupSteps: [
9
+ { uses: 'docker/setup-buildx-action@v3' },
10
+ {
11
+ uses: 'aws-actions/configure-aws-credentials@v4' ,
12
+ with: {
13
+ 'aws-region' : region,
14
+ 'role-to-assume' : 'arn:aws:iam::005216166247:role/GhaDockerPush' ,
15
+ 'role-skip-session-tagging' : true ,
16
+ },
17
+ },
18
+ {
19
+ uses: 'aws-actions/amazon-ecr-login@v2' ,
20
+ id: 'login-ecr' ,
21
+ },
22
+ ],
10
23
11
- local setupSteps = function (region) [
12
- { uses: 'docker/setup-buildx-action@v3' },
13
- {
14
- uses: 'aws-actions/configure-aws-credentials@v4' ,
15
- with: {
16
- 'aws-region' : region,
17
- 'role-to-assume' : 'arn:aws:iam::005216166247:role/GhaDockerPush' ,
18
- 'role-skip-session-tagging' : true ,
24
+ runnersMap: {
25
+ 'linux/amd64' : 'ubuntu-24.04' ,
26
+ 'linux/arm64' : 'ubuntu-24.04-arm' ,
19
27
},
20
28
},
21
- {
22
- uses: 'aws-actions/amazon-ecr-login@v2' ,
23
- id: 'login-ecr' ,
24
- },
25
- ];
26
29
27
- function (name, region='ap-northeast-1' , platforms=['linux/arm64' ]) {
28
30
name: std.format ('docker-%s' , name),
29
31
on: {
30
32
push: {
@@ -42,14 +44,14 @@ function(name, region='ap-northeast-1', platforms=['linux/arm64']) {
42
44
include: std.map (function (platform) {
43
45
key: std.strReplace (platform, '/' , '-' ), // for artifact name
44
46
platform: platform,
45
- runner: runnersMap[platform],
47
+ runner: $.common. runnersMap[platform],
46
48
}, platforms),
47
49
},
48
50
},
49
51
name: 'build (${{ matrix.platform }})' ,
50
52
'runs-on' : '${{ matrix.runner }}' ,
51
53
permissions: { 'id-token' : 'write' , contents: 'read' },
52
- steps: setupSteps(region) + [
54
+ steps: $.common. setupSteps + [
53
55
{
54
56
uses: 'docker/build-push-action@v6' ,
55
57
id: 'build-push' ,
@@ -87,7 +89,7 @@ function(name, region='ap-northeast-1', platforms=['linux/arm64']) {
87
89
'runs-on' : 'ubuntu-latest' ,
88
90
needs: ['build' ],
89
91
permissions: { 'id-token' : 'write' },
90
- steps: setupSteps(region) + [
92
+ steps: $.common. setupSteps + [
91
93
{
92
94
name: 'Download digests' ,
93
95
uses: 'actions/download-artifact@v4' ,
0 commit comments