@@ -2,7 +2,7 @@ name: Platform packages sync from -develop/ to -stable/
2
2
run-name : Sync${{ inputs.dry-run == true && ' dry-run' || '' }} from dist-$STACK-develop/ to dist-$STACK-stable/
3
3
4
4
env :
5
- stacks_list_for_shell_expansion : " {heroku-20,heroku-22}"
5
+ stacks_list_for_shell_expansion : " {heroku-20,heroku-22,heroku-24-amd64,heroku-24-arm64 }"
6
6
7
7
on :
8
8
workflow_dispatch :
17
17
type : boolean
18
18
default : true
19
19
required : false
20
+ stack-heroku-24-amd64 :
21
+ description : ' Sync heroku-24 (amd64) packages'
22
+ type : boolean
23
+ default : true
24
+ required : false
25
+ stack-heroku-24-arm64 :
26
+ description : ' Sync heroku-24 (arm64) packages'
27
+ type : boolean
28
+ default : true
29
+ required : false
20
30
dry-run :
21
31
description : ' Only list package changes, without syncing'
22
32
type : boolean
@@ -37,14 +47,14 @@ jobs:
37
47
run : |
38
48
echo '## Stacks to sync' >> "$GITHUB_STEP_SUMMARY"
39
49
set -o pipefail
40
- stacks=(${{ inputs.stack-heroku-20 == true && 'heroku-20' || ''}} ${{ inputs.stack-heroku-22 == true && 'heroku-22' || ''}})
50
+ stacks=(${{ inputs.stack-heroku-20 == true && 'heroku-20' || ''}} ${{ inputs.stack-heroku-22 == true && 'heroku-22' || ''}} ${{ inputs.stack-heroku-24-amd64 == true && 'heroku-24-amd64' || ''}} ${{ inputs.stack-heroku-24-arm64 == true && 'heroku-24-arm64' || ''}} )
41
51
printf -- "- %s\n" "${stacks[@]}" >> "$GITHUB_STEP_SUMMARY"
42
52
echo -n "matrix=" >> "$GITHUB_OUTPUT"
43
53
printf "%s\n" "${stacks[@]}" | jq -jcRn '[inputs|select(length>0)]' >> "$GITHUB_OUTPUT"
44
54
docker-build :
45
55
needs : stack-list
46
56
if : ${{ needs.stack-list.outputs.stacks != '[]' && needs.stack-list.outputs.stacks != '' }}
47
- runs-on : ubuntu-22.04
57
+ runs-on : ${{ endsWith(matrix.stack, '-arm64') && 'pub-hk- ubuntu-22.04-arm-small' || 'ubuntu-22.04' }}
48
58
strategy :
49
59
matrix :
50
60
stack : ${{ fromJSON(needs.stack-list.outputs.stacks) }}
62
72
run : docker load -i /tmp/docker-cache.tar.gz
63
73
- name : Build Docker image
64
74
if : steps.restore-docker.outputs.cache-hit != 'true'
65
- run : docker build --tag heroku-php-build-${{matrix.stack}}:${{github.sha}} --file support/build/_docker/${{matrix.stack}}.Dockerfile .
75
+ # our "input" stack might contain a "-amd64" or "-arm64" suffix, which we strip off for the Dockerfile name
76
+ run : |
77
+ shopt -s extglob
78
+ stackname_with_architecture=${{matrix.stack}}
79
+ docker build --tag heroku-php-build-${stackname_with_architecture}:${{github.sha}} --file support/build/_docker/${stackname_with_architecture%-?(amd|arm)64}.Dockerfile .
66
80
- name : Save built Docker image
67
81
if : steps.restore-docker.outputs.cache-hit != 'true'
68
82
run : docker save heroku-php-build-${{matrix.stack}}:${{github.sha}} | gzip -1 > /tmp/docker-cache.tar.gz
@@ -74,10 +88,10 @@ jobs:
74
88
path : /tmp/docker-cache.tar.gz
75
89
sync :
76
90
needs : [stack-list, docker-build]
77
- runs-on : ubuntu-22.04
78
91
strategy :
79
92
matrix :
80
93
stack : ${{ fromJSON(needs.stack-list.outputs.stacks) }}
94
+ runs-on : ${{ endsWith(matrix.stack, '-arm64') && 'pub-hk-ubuntu-22.04-arm-small' || 'ubuntu-22.04' }}
81
95
env :
82
96
AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
83
97
AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
0 commit comments