diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index d009281616..74acb5dc8c 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -83,25 +83,21 @@ jobs: registry: quay.io username: ${{ secrets.QUAY_IO_ROBOT_USERNAME }} password: ${{ secrets.QUAY_IO_ROBOT_TOKEN }} - - name: Pull AMD image + - name: Publish architecture cache tags run: | - docker pull $DOCKER_BUILD_REPOSITORY:amd64-$SHORT_SHA - - name: Pull ARM image - run: | - docker pull $DOCKER_BUILD_REPOSITORY:arm64-$SHORT_SHA - - name: Push latest build tags for AMD and ARM - run: | - # these are used to construct the final manifest but also cache-from in subsequent runs - docker tag $DOCKER_BUILD_REPOSITORY:amd64-$SHORT_SHA $DOCKER_BUILD_REPOSITORY:amd64 - docker push $DOCKER_BUILD_REPOSITORY:amd64 - docker tag $DOCKER_BUILD_REPOSITORY:arm64-$SHORT_SHA $DOCKER_BUILD_REPOSITORY:arm64 - docker push $DOCKER_BUILD_REPOSITORY:arm64 + # Retag the tested images directly in Quay; publication does not need + # either architecture's layers on the runner. + for ARCH in amd64 arm64; do + docker buildx imagetools create --prefer-index=false \ + --tag "$DOCKER_BUILD_REPOSITORY:$ARCH" \ + "$DOCKER_BUILD_REPOSITORY:$ARCH-$SHORT_SHA" + done - name: Push multiarch manifest run: | - docker manifest create ${DOCKER_REPOSITORY}:latest $DOCKER_BUILD_REPOSITORY:amd64 $DOCKER_BUILD_REPOSITORY:arm64 - docker manifest push $DOCKER_REPOSITORY:latest - docker manifest create ${DOCKER_REPOSITORY}:$SHORT_SHA $DOCKER_BUILD_REPOSITORY:amd64 $DOCKER_BUILD_REPOSITORY:arm64 - docker manifest push $DOCKER_REPOSITORY:$SHORT_SHA VERSION=$(grep -Po '(?<=__version__ = ")[^"]*' unstructured/__version__.py) - docker manifest create ${DOCKER_REPOSITORY}:$VERSION $DOCKER_BUILD_REPOSITORY:amd64 $DOCKER_BUILD_REPOSITORY:arm64 - docker manifest push $DOCKER_REPOSITORY:$VERSION + docker buildx imagetools create \ + --tag "$DOCKER_REPOSITORY:latest" \ + --tag "$DOCKER_REPOSITORY:$SHORT_SHA" \ + --tag "$DOCKER_REPOSITORY:$VERSION" \ + "$DOCKER_BUILD_REPOSITORY:amd64-$SHORT_SHA" \ + "$DOCKER_BUILD_REPOSITORY:arm64-$SHORT_SHA" diff --git a/CHANGELOG.md b/CHANGELOG.md index 873d7e4c50..29a836f629 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ ## 0.27.19-dev0 +- **Start the next development cycle after 0.27.18.** CI maintenance uses development metadata rather than reusing an already released package version. This does not declare a stable package release. + ### Maintenance - **Start CI tests without waiting for setup and lint.** Lint installs only its own dependency group, extras jobs install only the system packages their tests use, and a new push cancels the pull request's previous CI run.