diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 5178eb5ff..1f0cc2731 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -54,48 +54,6 @@ jobs: name: build-${{ matrix.os }}-${{ matrix.arch }} path: dist/* - darwin-sign: - runs-on: macos-13 - environment: release - needs: darwin-build - steps: - - uses: actions/checkout@v4 - - run: | - echo $MACOS_SIGNING_KEY | base64 --decode > certificate.p12 - security create-keychain -p password build.keychain - security default-keychain -s build.keychain - security unlock-keychain -p password build.keychain - security import certificate.p12 -k build.keychain -P $MACOS_SIGNING_KEY_PASSWORD -T /usr/bin/codesign - security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k password build.keychain - security set-keychain-settings -lut 3600 build.keychain - env: - MACOS_SIGNING_KEY: ${{ secrets.MACOS_SIGNING_KEY }} - MACOS_SIGNING_KEY_PASSWORD: ${{ secrets.MACOS_SIGNING_KEY_PASSWORD }} - - uses: actions/download-artifact@v4 - with: - name: build-darwin-amd64 - path: dist/darwin-amd64 - - uses: actions/download-artifact@v4 - with: - name: build-darwin-arm64 - path: dist/darwin-arm64 - - run: | - export VERSION=${GITHUB_REF_NAME#v} - ./scripts/build_darwin.sh sign macapp - env: - APPLE_IDENTITY: ${{ secrets.APPLE_IDENTITY }} - APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} - APPLE_TEAM_ID: ${{ vars.APPLE_TEAM_ID }} - APPLE_ID: ${{ vars.APPLE_ID }} - SDKROOT: /Applications/Xcode_14.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk - DEVELOPER_DIR: /Applications/Xcode_14.1.0.app/Contents/Developer - - uses: actions/upload-artifact@v4 - with: - name: dist-darwin - path: | - dist/Ollama-darwin.zip - dist/ollama-darwin.tgz - windows-depends: strategy: matrix: @@ -230,61 +188,11 @@ jobs: go-version-file: go.mod - run: | go build -o dist/${{ matrix.os }}-${{ matrix.arch }}/ . - - if: matrix.arch == 'arm64' - run: | - Invoke-WebRequest -Uri "https://aka.ms/vs/17/release/vc_redist.arm64.exe" -OutFile "dist\windows-arm64\vc_redist.arm64.exe" - - run: | - $env:VERSION='${{ github.ref_name }}' -Replace "v(.*)", '$1' - & .\scripts\build_windows.ps1 buildApp - env: - VCToolsRedistDir: stub - uses: actions/upload-artifact@v4 with: name: build-${{ matrix.os }}-${{ matrix.arch }} path: | dist\${{ matrix.os }}-${{ matrix.arch }}\*.exe - dist\${{ matrix.os }}-${{ matrix.arch }}-app.exe - - windows-sign: - runs-on: windows - environment: release - needs: [windows-depends, windows-build] - steps: - - uses: actions/checkout@v4 - - uses: google-github-actions/auth@v2 - with: - project_id: ollama - credentials_json: ${{ secrets.GOOGLE_SIGNING_CREDENTIALS }} - - run: | - $ErrorActionPreference = "Stop" - Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/p/?LinkId=323507" -OutFile "${{ runner.temp }}\sdksetup.exe" - Start-Process "${{ runner.temp }}\sdksetup.exe" -ArgumentList @("/q") -NoNewWindow -Wait - - Invoke-WebRequest -Uri "https://github.com/GoogleCloudPlatform/kms-integrations/releases/download/cng-v1.0/kmscng-1.0-windows-amd64.zip" -OutFile "${{ runner.temp }}\plugin.zip" - Expand-Archive -Path "${{ runner.temp }}\plugin.zip" -DestinationPath "${{ runner.temp }}\plugin\" - & "${{ runner.temp }}\plugin\*\kmscng.msi" /quiet - - echo "${{ vars.OLLAMA_CERT }}" >ollama_inc.crt - - uses: actions/download-artifact@v4 - with: - pattern: build-windows-* - path: dist\ - merge-multiple: true - - uses: actions/download-artifact@v4 - with: - pattern: depends-windows-amd64-* - path: dist\windows-amd64\ - merge-multiple: true - - run: | - & .\scripts\build_windows.ps1 gatherDependencies sign buildInstaller distZip - env: - KEY_CONTAINER: ${{ vars.KEY_CONTAINER }} - - uses: actions/upload-artifact@v4 - with: - name: dist-windows - path: | - dist\OllamaSetup.exe - dist\ollama-windows-*.zip linux-build: strategy: @@ -441,58 +349,16 @@ jobs: trigger: runs-on: ubuntu-latest environment: release - needs: [darwin-build, windows-build, windows-depends] - steps: - - name: Trigger downstream release process - run: | - curl -L \ - -X POST \ - -H "Accept: application/vnd.github+json" \ - -H "Authorization: Bearer ${{ secrets.RELEASE_TOKEN }}" \ - -H "X-GitHub-Api-Version: 2022-11-28" \ - https://api.github.com/repos/ollama/${{ vars.RELEASE_REPO }}/dispatches \ - -d "{\"event_type\": \"trigger-workflow\", \"client_payload\": {\"run_id\": \"${GITHUB_RUN_ID}\", \"version\": \"${GITHUB_REF_NAME#v}\"}}" - - # Aggregate all the assets and ship a release - release: - needs: [darwin-sign, windows-sign, linux-build] - runs-on: linux - environment: release + needs: [darwin-build, windows-build, windows-depends, linux-build] permissions: contents: write env: GH_TOKEN: ${{ github.token }} steps: - uses: actions/checkout@v4 - - uses: actions/download-artifact@v4 - with: - name: dist-darwin - path: dist - - uses: actions/download-artifact@v4 - with: - name: dist-windows - path: dist - - uses: actions/download-artifact@v4 - with: - pattern: dist-linux-* - path: stage - merge-multiple: false - - name: Merge linux amd64 payload - working-directory: stage/dist-linux-amd64-archive - run: | - tar zxf ollama-linux-amd64.tgz - tar zxf ../dist-linux-amd64-rocm/ollama-linux-amd64.tgz - rm -f ollama-linux-amd64.tgz ../dist-linux-amd64-rocm/ollama-linux-amd64.tgz - tar -c -f- --owner 0 --group 0 . | pigz -9vc > ../ollama-linux-amd64.tgz - - name: Cleanup linux payloads - run: | - find stage -name ollama-linux\*.tgz -exec mv {} dist/ \; - - run: find . -type f -not -name 'sha256sum.txt' | xargs sha256sum | tee sha256sum.txt - working-directory: dist - - name: Create or update Release + - name: Create or update Release for tag run: | RELEASE_VERSION="$(echo ${GITHUB_REF_NAME} | cut -f1 -d-)" - echo "Looking for existing release for ${RELEASE_VERSION}" OLD_TAG=$(gh release ls --json name,tagName | jq -r ".[] | select(.name == \"${RELEASE_VERSION}\") | .tagName") if [ -n "$OLD_TAG" ]; then @@ -506,5 +372,12 @@ jobs: --generate-notes \ --prerelease fi - echo "Uploading artifacts for tag ${GITHUB_REF_NAME}" - gh release upload ${GITHUB_REF_NAME} dist/* --clobber + - name: Trigger downstream release process + run: | + curl -L \ + -X POST \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer ${{ secrets.RELEASE_TOKEN }}" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + https://api.github.com/repos/ollama/${{ vars.RELEASE_REPO }}/dispatches \ + -d "{\"event_type\": \"trigger-workflow\", \"client_payload\": {\"run_id\": \"${GITHUB_RUN_ID}\", \"version\": \"${GITHUB_REF_NAME#v}\", \"publish\": \"1\"}}"