22name : OCI (make)
33on :
44 push :
5+ branches :
6+ - fast-oci
57 paths-ignore :
68 - ' .github/workflows/secondary-umbrella.yaml'
79 - ' .github/workflows/update-elixir-patches.yaml'
1012 - ' *.md'
1113 workflow_dispatch :
1214env :
13- REGISTRY_IMAGE : pivotalrabbitmq/rabbitmq
15+ REGISTRY_IMAGE : pivotalrabbitmq/rabbitmq-test
1416concurrency :
1517 group : ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
1618 cancel-in-progress : true
@@ -35,15 +37,15 @@ jobs:
3537 if : steps.authorized.outputs.authorized == 'true'
3638 uses : erlef/setup-beam@v1
3739 with :
38- otp-version : 26 .2
39- elixir-version : 1.15
40+ otp-version : 27 .2
41+ elixir-version : 1.17
4042 - name : make package-generic-unix
4143 if : steps.authorized.outputs.authorized == 'true'
4244 run : |
4345 make package-generic-unix PROJECT_VERSION=4.1.0-alpha.1
4446 - name : Upload package-generic-unix
4547 if : steps.authorized.outputs.authorized == 'true'
46- uses : actions/upload-artifact@v4.3.1
48+ uses : actions/upload-artifact@v4
4749 with :
4850 name : package-generic-unix
4951 path : PACKAGES/rabbitmq-server-*.tar.xz
5456 if : ${{ needs.build-package-generic-unix.outputs.authorized }} == 'true'
5557 strategy :
5658 fail-fast : false
57- matrix :
58- platform :
59- - linux/amd64
60- # Unfortunately even with type=gha cache, OpenSSL and OTP
61- # are rebuilt often and it takes ~90 minutes to do that
62- # in the emulated ARM mode. Disabling until we have a better solution.
63- # - linux/arm64
6459 steps :
65- - name : Prepare
66- run : |
67- platform=${{ matrix.platform }}
68- echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
6960 - name : Checkout
7061 uses : actions/checkout@v4
7162 - name : Download package-generic-unix
9182 uses : docker/setup-qemu-action@v3
9283 - name : Set up Docker Buildx
9384 uses : docker/setup-buildx-action@v3
94- - name : Login to GitHub Container Registry
95- uses : docker/login-action@v3
96- with :
97- registry : ghcr.io
98- username : ${{ github.actor }}
99- password : ${{ secrets.GITHUB_TOKEN }}
10085 - name : Login to Docker Hub
10186 uses : docker/login-action@v3
10287 with :
@@ -107,70 +92,47 @@ jobs:
10792 uses : docker/build-push-action@v6
10893 with :
10994 context : packaging/docker-image
110- platforms : ${{ matrix.platform }}
95+ platforms : linux/amd64, linux/arm64
11196 labels : ${{ steps.meta.outputs.labels }}
11297 cache-to : type=gha
11398 cache-from : type=gha
11499 outputs : type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
115- - name : Export digest
116- run : |
117- mkdir -p /tmp/digests
118- digest="${{ steps.build.outputs.digest }}"
119- touch "/tmp/digests/${digest#sha256:}"
120- - name : Upload digest
121- uses : actions/upload-artifact@v4
122- with :
123- name : digests-${{ env.PLATFORM_PAIR }}
124- path : /tmp/digests/*
125- if-no-files-found : error
126- retention-days : 1
100+ build-args :
101+ OTP_VERSION=27
127102
128- merge :
129- needs :
130- - build
131- runs-on : ubuntu-latest
132- if : ${{ needs.build-package-generic-unix.outputs.authorized }} == 'true'
133- steps :
134- - name : Download digests
135- uses : actions/download-artifact@v4
136- with :
137- path : /tmp/digests
138- pattern : digests-*
139- merge-multiple : true
140- - name : Set up Docker Buildx
141- uses : docker/setup-buildx-action@v3
142- - name : Docker meta
143- id : meta
144- uses : docker/metadata-action@v5
145- with :
146- images : ${{ env.REGISTRY_IMAGE }}
147- tags : |
148- type=ref,event=branch
149- type=ref,event=pr
150- type=sha,format=long
151- - name : Login to Docker Hub
152- uses : docker/login-action@v3
153- with :
154- username : ${{ secrets.DOCKERHUB_USERNAME }}
155- password : ${{ secrets.DOCKERHUB_PASSWORD }}
156- - name : Create manifest list and push
157- working-directory : /tmp/digests
158- run : |
159- docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
160- $(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
161- - name : Inspect image
162- run : |
163- docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
164-
165- summary-oci :
166- needs :
167- - build-package-generic-unix
168- - build
169- - merge
170- runs-on : ubuntu-latest
171- steps :
172- - name : SUMMARY
173- run : |
174- cat << 'EOF' | jq -e 'map(.result == "success") | all(.)'
175- ${{ toJson(needs) }}
176- EOF
103+ # merge:
104+ # needs:
105+ # - build
106+ # runs-on: ubuntu-latest
107+ # if: ${{ needs.build-package-generic-unix.outputs.authorized }} == 'true'
108+ # steps:
109+ # - name: Download digests
110+ # uses: actions/download-artifact@v4
111+ # with:
112+ # path: /tmp/digests
113+ # pattern: digests-*
114+ # merge-multiple: true
115+ # - name: Set up Docker Buildx
116+ # uses: docker/setup-buildx-action@v3
117+ # - name: Docker meta
118+ # id: meta
119+ # uses: docker/metadata-action@v5
120+ # with:
121+ # images: ${{ env.REGISTRY_IMAGE }}
122+ # tags: |
123+ # type=ref,event=branch
124+ # type=ref,event=pr
125+ # type=sha,format=long
126+ # - name: Login to Docker Hub
127+ # uses: docker/login-action@v3
128+ # with:
129+ # username: ${{ secrets.DOCKERHUB_USERNAME }}
130+ # password: ${{ secrets.DOCKERHUB_PASSWORD }}
131+ # - name: Create manifest list and push
132+ # working-directory: /tmp/digests
133+ # run: |
134+ # docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
135+ # $(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
136+ # - name: Inspect image
137+ # run: |
138+ # docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
0 commit comments