From 7717bb6a84ea07a3b5dbaffef63558342d5f817f Mon Sep 17 00:00:00 2001 From: Daniel Hiltgen Date: Mon, 16 Sep 2024 16:18:41 -0700 Subject: [PATCH] CI: clean up naming, fix tagging latest (#6832) The rocm CI step for RCs was incorrectly tagging them as the latest rocm build. The multiarch manifest was incorrectly tagged twice (with and without the prefix "v"). Static windows artifacts weren't being carried between build jobs. This also fixes the latest tagging script. --- .github/workflows/release.yaml | 12 +++++------- scripts/tag_latest.sh | 30 +++++------------------------- 2 files changed, 10 insertions(+), 32 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 257d136a..805938f7 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -104,6 +104,7 @@ jobs: path: | build/**/* build/**/*.a + llm/build/**/*.a dist/windows-amd64/** # ROCm generation step @@ -421,7 +422,7 @@ jobs: !dist/*-cov # Container image build - build-linux: + build-container-image: environment: release strategy: matrix: @@ -459,7 +460,6 @@ jobs: flavor: | latest=false tags: | - type=ref,event=tag type=ref,enable=true,priority=600,prefix=0.0.0-pr,suffix=,event=pr type=semver,pattern={{version}} - name: Set Version @@ -503,7 +503,7 @@ jobs: environment: release runs-on: linux needs: - - build-linux + - build-container-image env: FINAL_IMAGE_REPO: ollama/ollama steps: @@ -526,7 +526,6 @@ jobs: flavor: | latest=false tags: | - type=ref,event=tag type=ref,enable=true,priority=600,prefix=0.0.0-pr,suffix=,event=pr type=semver,pattern={{version}} - name: Set Version @@ -551,7 +550,7 @@ jobs: - name: Inspect image run: | docker buildx imagetools inspect ${{ env.FINAL_IMAGE_REPO }}:${{ steps.meta.outputs.version }} - build-linux-rocm: + build-container-image-rocm: environment: release runs-on: linux env: @@ -570,7 +569,6 @@ jobs: flavor: | latest=false tags: | - type=ref,event=tag type=ref,enable=true,priority=600,prefix=0.0.0-pr,suffix=,event=pr type=semver,pattern={{version}} - name: Set Version @@ -592,7 +590,7 @@ jobs: target: runtime-rocm build-args: | GOFLAGS - tags: ${{ env.FINAL_IMAGE_REPO }}:${{ env.DOCKER_METADATA_OUTPUT_VERSION}}-rocm,${{ env.FINAL_IMAGE_REPO }}:rocm + tags: ${{ env.FINAL_IMAGE_REPO }}:${{ env.DOCKER_METADATA_OUTPUT_VERSION}}-rocm push: true # Aggregate all the assets and ship a release diff --git a/scripts/tag_latest.sh b/scripts/tag_latest.sh index abe42631..1f56f036 100755 --- a/scripts/tag_latest.sh +++ b/scripts/tag_latest.sh @@ -2,32 +2,12 @@ set -eu -# We use 2 different image repositories to handle combining architecture images into multiarch manifest -# (The ROCm image is x86 only and is not a multiarch manifest) # For developers, you can override the DOCKER_ORG to generate multiarch manifests -# DOCKER_ORG=jdoe VERSION=0.1.30 PUSH=1 ./scripts/tag_latest.sh +# DOCKER_ORG=jdoe VERSION=0.1.30 ./scripts/tag_latest.sh DOCKER_ORG=${DOCKER_ORG:-"ollama"} -RELEASE_IMAGE_REPO=${RELEASE_IMAGE_REPO:-"${DOCKER_ORG}/release"} FINAL_IMAGE_REPO=${FINAL_IMAGE_REPO:-"${DOCKER_ORG}/ollama"} -# Set PUSH to a non-empty string to trigger push instead of load -PUSH=${PUSH:-""} - -echo "Assembling manifest and tagging latest" -docker manifest rm ${FINAL_IMAGE_REPO}:latest || true -docker manifest create ${FINAL_IMAGE_REPO}:latest \ - ${RELEASE_IMAGE_REPO}:$VERSION-amd64 \ - ${RELEASE_IMAGE_REPO}:$VERSION-arm64 - -docker pull ${RELEASE_IMAGE_REPO}:$VERSION-rocm -docker tag ${RELEASE_IMAGE_REPO}:$VERSION-rocm ${FINAL_IMAGE_REPO}:rocm - -if [ -n "${PUSH}" ]; then - echo "Pushing latest tags up..." - docker manifest push ${FINAL_IMAGE_REPO}:latest - docker push ${FINAL_IMAGE_REPO}:rocm -else - echo "Not pushing ${FINAL_IMAGE_REPO}:latest and ${FINAL_IMAGE_REPO}:rocm" -fi - - +echo "Updating ${FINAL_IMAGE_REPO}:latest -> ${FINAL_IMAGE_REPO}:${VERSION}" +docker buildx imagetools create -t ${FINAL_IMAGE_REPO}:latest ${FINAL_IMAGE_REPO}:${VERSION} +echo "Updating ${FINAL_IMAGE_REPO}:rocm -> ${FINAL_IMAGE_REPO}:${VERSION}-rocm" +docker buildx imagetools create -t ${FINAL_IMAGE_REPO}:rocm ${FINAL_IMAGE_REPO}:${VERSION}-rocm