Skip to content

Commit cbf33f9

Browse files
authored
remove digest based merge strategy (#685)
* remove digest based merge strategy * use env.REGISTRY_NAME
1 parent f38aa73 commit cbf33f9

File tree

2 files changed

+20
-81
lines changed

2 files changed

+20
-81
lines changed

.github/workflows/main.yml

Lines changed: 8 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,6 @@ jobs:
2222
- name: Checkout code
2323
uses: actions/checkout@v3
2424

25-
- name: Prepare
26-
run: |
27-
platform=${{ matrix.platform }}
28-
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
29-
3025
- name: Set up Docker Buildx
3126
uses: docker/setup-buildx-action@v3
3227

@@ -36,59 +31,32 @@ jobs:
3631
username: ${{ secrets.DOCKER_USERNAME }}
3732
password: ${{ secrets.DOCKER_PASSWORD }}
3833

39-
- name: Build and push by digest
34+
- name: Build and push image
4035
id: build
4136
uses: docker/build-push-action@v6
4237
with:
4338
context: .
4439
target: prod
40+
push: true
4541
tags: thirdweb/engine:nightly-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }}
4642
platforms: ${{ matrix.platform }}
47-
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
4843
cache-from: type=gha,scope=${{ matrix.platform }}
4944
cache-to: type=gha,scope=${{ matrix.platform }},mode=max
5045
build-args: ENGINE_VERSION=nightly
5146

52-
- name: Export digest
53-
run: |
54-
mkdir -p /tmp/digests
55-
digest="${{ steps.build.outputs.digest }}"
56-
touch "/tmp/digests/${digest#sha256:}"
57-
58-
- name: Upload digest
59-
uses: actions/upload-artifact@v4
60-
with:
61-
name: digests-${{ env.PLATFORM_PAIR }}
62-
path: /tmp/digests/*
63-
if-no-files-found: error
64-
retention-days: 1
65-
66-
merge:
47+
merge-manifests:
6748
needs: build
6849
runs-on: ubuntu-latest
6950
steps:
70-
- name: Download digests
71-
uses: actions/download-artifact@v4
72-
with:
73-
path: /tmp/digests
74-
pattern: digests-*
75-
merge-multiple: true
76-
77-
- name: Set up Docker Buildx
78-
uses: docker/setup-buildx-action@v3
79-
8051
- name: Login to DockerHub
8152
uses: docker/login-action@v3
8253
with:
8354
username: ${{ secrets.DOCKER_USERNAME }}
8455
password: ${{ secrets.DOCKER_PASSWORD }}
8556

86-
- name: Create manifest list and push
87-
working-directory: /tmp/digests
88-
run: |
89-
docker buildx imagetools create -t ${{ env.REGISTRY_IMAGE }}:nightly \
90-
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
91-
92-
- name: Inspect image
57+
- name: Create and Push Multi-arch Manifest
9358
run: |
94-
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:nightly
59+
docker manifest create ${{ env.REGISTRY_IMAGE }}:nightly \
60+
${{ env.REGISTRY_IMAGE }}:nightly-amd64 \
61+
${{ env.REGISTRY_IMAGE }}:nightly-arm64
62+
docker manifest push ${{ env.REGISTRY_IMAGE }}:nightly

.github/workflows/tagBasedImageBuild.yml

Lines changed: 12 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,6 @@ jobs:
2626
with:
2727
ref: ${{ github.event.release.target_commitish }}
2828

29-
- name: Prepare
30-
run: |
31-
platform=${{ matrix.platform }}
32-
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
33-
3429
- name: Set up Docker Buildx
3530
uses: docker/setup-buildx-action@v3
3631

@@ -46,62 +41,38 @@ jobs:
4641
context: .
4742
target: prod
4843
platforms: ${{ matrix.platform }}
44+
push: true
4945
tags: |
5046
${{ env.REGISTRY_IMAGE }}:${{ github.event.release.tag_name }}-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }}
5147
${{ env.LATEST_TAG != '' && format('thirdweb/engine:latest-{0}', matrix.platform == 'linux/amd64' && 'amd64' || 'arm64') || '' }}
52-
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
5348
cache-from: type=gha,scope=${{ matrix.platform }}
5449
cache-to: type=gha,scope=${{ matrix.platform }},mode=max
5550
build-args: ENGINE_VERSION=${{ github.event.release.tag_name }}
5651

57-
- name: Export digest
58-
run: |
59-
mkdir -p /tmp/digests
60-
digest="${{ steps.build.outputs.digest }}"
61-
touch "/tmp/digests/${digest#sha256:}"
62-
63-
- name: Upload digest
64-
uses: actions/upload-artifact@v4
65-
with:
66-
name: digests-${{ env.PLATFORM_PAIR }}
67-
path: /tmp/digests/*
68-
if-no-files-found: error
69-
retention-days: 1
70-
7152
merge-manifests:
7253
needs: build
7354
runs-on: ubuntu-latest
7455
env:
7556
LATEST_TAG: ${{ github.event.release.target_commitish == 'main' && 'thirdweb/engine:latest' || '' }}
7657
steps:
77-
- name: Download digests
78-
uses: actions/download-artifact@v4
79-
with:
80-
path: /tmp/digests
81-
pattern: digests-*
82-
merge-multiple: true
83-
84-
- name: Set up Docker Buildx
85-
uses: docker/setup-buildx-action@v3
86-
8758
- name: Login to DockerHub
8859
uses: docker/login-action@v3
8960
with:
9061
username: ${{ secrets.DOCKER_USERNAME }}
9162
password: ${{ secrets.DOCKER_PASSWORD }}
9263

93-
- name: Create and Push Multi-arch Manifest (release tag)
94-
working-directory: /tmp/digests
64+
- name: Create and Push Multi-arch Manifest (release tag)
9565
run: |
96-
docker buildx imagetools create -t ${{ env.REGISTRY_IMAGE }}:${{ github.event.release.tag_name }} \
97-
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
66+
docker manifest create ${{ env.REGISTRY_IMAGE }}:${{ github.event.release.tag_name }} \
67+
${{ env.REGISTRY_IMAGE }}:${{ github.event.release.tag_name }}-amd64 \
68+
${{ env.REGISTRY_IMAGE }}:${{ github.event.release.tag_name }}-arm64
69+
docker manifest push ${{ env.REGISTRY_IMAGE }}:${{ github.event.release.tag_name }}
9870
99-
- name: Create and Push Multi-arch Manifest (latest tag) (if applicable)
100-
if: ${{ env.LATEST_TAG != '' }}
101-
run: |
102-
docker buildx imagetools create -t ${{ env.REGISTRY_IMAGE }}:latest \
103-
${{ env.REGISTRY_IMAGE }}@sha256:${{ steps.build.outputs.digest }}
10471
105-
- name: Inspect image
72+
- name: Create and Push Multi-arch Manifest (latest tag) (if applicable)
73+
if: ${{ env.LATEST_TAG != '' }}
10674
run: |
107-
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ github.event.release.tag_name }}
75+
docker manifest create ${{ env.REGISTRY_IMAGE }}:latest \
76+
${{ env.REGISTRY_IMAGE }}:latest-arm64 \
77+
${{ env.REGISTRY_IMAGE }}:latest-amd64
78+
docker manifest push ${{ env.REGISTRY_IMAGE }}:latest

0 commit comments

Comments
 (0)