Skip to content

Commit 4a7e991

Browse files
committed
WIP: try a faster OCI build
1 parent 2291579 commit 4a7e991

File tree

3 files changed

+48
-479
lines changed

3 files changed

+48
-479
lines changed

.github/workflows/oci-arm64-make.yaml

Lines changed: 0 additions & 179 deletions
This file was deleted.

.github/workflows/oci-make.yaml

Lines changed: 45 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
name: OCI (make)
33
on:
44
push:
5+
branches:
6+
- fast-oci
57
paths-ignore:
68
- '.github/workflows/secondary-umbrella.yaml'
79
- '.github/workflows/update-elixir-patches.yaml'
@@ -10,7 +12,7 @@ on:
1012
- '*.md'
1113
workflow_dispatch:
1214
env:
13-
REGISTRY_IMAGE: pivotalrabbitmq/rabbitmq
15+
REGISTRY_IMAGE: pivotalrabbitmq/rabbitmq-test
1416
concurrency:
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
@@ -54,18 +56,7 @@ jobs:
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
@@ -91,12 +82,6 @@ jobs:
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

Comments
 (0)