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