|
75 | 75 |
|
76 | 76 | mkdir -p release-bundle |
77 | 77 |
|
| 78 | + tar cJvf "release-bundle/postgrest-${GITHUB_REF_NAME}-linux-static-aarch64.tar.xz" \ |
| 79 | + -C artifacts/postgrest-linux-static-aarch64 postgrest |
| 80 | +
|
78 | 81 | tar cJvf "release-bundle/postgrest-${GITHUB_REF_NAME}-linux-static-x86-64.tar.xz" \ |
79 | 82 | -C artifacts/postgrest-linux-static-x86-64 postgrest |
80 | 83 |
|
|
87 | 90 | tar cJvf "release-bundle/postgrest-${GITHUB_REF_NAME}-freebsd-x86-64.tar.xz" \ |
88 | 91 | -C artifacts/postgrest-freebsd-x86-64 postgrest |
89 | 92 |
|
90 | | - tar cJvf "release-bundle/postgrest-${GITHUB_REF_NAME}-ubuntu-aarch64.tar.xz" \ |
91 | | - -C artifacts/postgrest-ubuntu-aarch64 postgrest |
92 | | -
|
93 | 93 | zip --junk-paths "release-bundle/postgrest-${GITHUB_REF_NAME}-windows-x86-64.zip" \ |
94 | 94 | artifacts/postgrest-windows-x86-64/postgrest.exe |
95 | 95 |
|
@@ -139,49 +139,43 @@ jobs: |
139 | 139 | DOCKER_REPO: ${{ vars.DOCKER_REPO }} |
140 | 140 | steps: |
141 | 141 | - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 |
142 | | - - name: Download x86-64 Docker image |
| 142 | + - name: Download aarch64 Docker image |
143 | 143 | uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 |
144 | 144 | with: |
145 | | - name: postgrest-docker-x86-64 |
146 | | - - name: Download aarch64 binary |
| 145 | + name: postgrest-docker-aarch64 |
| 146 | + - name: Download x86-64 Docker image |
147 | 147 | uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 |
148 | 148 | with: |
149 | | - name: postgrest-ubuntu-aarch64 |
| 149 | + name: postgrest-docker-x86-64 |
150 | 150 | - uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 |
151 | 151 | - uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0 |
152 | 152 | with: |
153 | 153 | username: ${{ vars.DOCKER_USER }} |
154 | 154 | password: ${{ secrets.DOCKER_PASS }} |
155 | | - - name: Build aarch64 Docker image |
156 | | - run: | |
157 | | - # This only pushes the image via digest, not a tag. This will not appear |
158 | | - # in the image list on Docker Hub, yet. It will be later added to the main |
159 | | - # tag's manifest. |
160 | | - docker buildx build \ |
161 | | - -t "$DOCKER_REPO/postgrest" \ |
162 | | - --platform linux/arm64 \ |
163 | | - --output push-by-digest=true,type=image,push=true \ |
164 | | - --metadata-file metadata.json \ |
165 | | - . |
166 | | - echo "SHA256_ARM=$(jq -r '."containerimage.digest"' metadata.json)" >> "$GITHUB_ENV" |
167 | 155 | - name: Publish images on Docker Hub |
168 | 156 | run: | |
169 | | - docker load -i postgrest-docker.tar.gz |
| 157 | + docker load -i postgrest-docker-aarch64.tar.gz |
| 158 | + docker tag postgrest:latest "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}" |
| 159 | + docker push "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}" |
| 160 | + SHA256_ARM64=$(docker inspect postgrest:latest | jq -r '.[0].Id') |
170 | 161 |
|
| 162 | + docker load -i postgrest-docker-x86-64.tar.gz |
171 | 163 | docker tag postgrest:latest "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}" |
172 | 164 | docker push "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}" |
173 | | - docker buildx imagetools create --append \ |
174 | | - -t "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}" \ |
175 | | - "$DOCKER_REPO/postgrest@$SHA256_ARM" |
| 165 | + SHA256_AMD64=$(docker inspect postgrest:latest | jq -r '.[0].Id') |
| 166 | +
|
| 167 | + docker manifest create "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}" \ |
| 168 | + "$DOCKER_REPO/postgrest@$SHA256_ARM64" \ |
| 169 | + "$DOCKER_REPO/postgrest@$SHA256_AMD64" |
| 170 | + docker manifest push "$DOCKER_REPO/postgrest:${GITHUB_REF_NAME}" |
176 | 171 |
|
177 | 172 | # Only tag 'latest' for full releases |
178 | 173 | if [ "${GITHUB_REF_NAME}" != "devel" ]; then |
179 | 174 | echo "Pushing to 'latest' tag for full release of ${GITHUB_REF_NAME} ..." |
180 | | - docker tag postgrest:latest "$DOCKER_REPO"/postgrest:latest |
181 | | - docker push "$DOCKER_REPO"/postgrest:latest |
182 | | - docker buildx imagetools create --append \ |
183 | | - -t "$DOCKER_REPO/postgrest:latest" \ |
184 | | - "$DOCKER_REPO/postgrest@$SHA256_ARM" |
| 175 | + docker manifest create "$DOCKER_REPO/postgrest:latest" \ |
| 176 | + "$DOCKER_REPO/postgrest@$SHA256_ARM64" \ |
| 177 | + "$DOCKER_REPO/postgrest@$SHA256_AMD64" |
| 178 | + docker manifest push "$DOCKER_REPO/postgrest:latest" |
185 | 179 | else |
186 | 180 | echo "Skipping push to 'latest' tag for pre-release..." |
187 | 181 | fi |
|
0 commit comments