goose/.github/workflows/release.yml
Jack Amadeo 8ac74683c6
Some checks are pending
Create Minor Release PR / check-version-bump-pr (push) Waiting to run
Create Minor Release PR / release (push) Blocked by required conditions
Live Provider Tests / check-fork (push) Waiting to run
Live Provider Tests / changes (push) Blocked by required conditions
Live Provider Tests / Build Binary (push) Blocked by required conditions
Live Provider Tests / Smoke Tests (push) Blocked by required conditions
Live Provider Tests / Smoke Tests (Code Execution) (push) Blocked by required conditions
Live Provider Tests / Compaction Tests (push) Blocked by required conditions
Publish Ask AI Bot Docker Image / docker (push) Waiting to run
Canary / Prepare Version (push) Waiting to run
Canary / build-cli-linux (push) Blocked by required conditions
Canary / Upload Install Script (push) Waiting to run
Canary / bundle-macos-arm64 (push) Blocked by required conditions
Canary / bundle-macos-x64 (push) Blocked by required conditions
Canary / bundle-desktop-linux (push) Blocked by required conditions
Canary / bundle-windows (push) Blocked by required conditions
Canary / bundle-windows-cuda (push) Blocked by required conditions
Canary / Release (push) Blocked by required conditions
Cargo Deny / deny (push) Waiting to run
Unused Dependencies / machete (push) Waiting to run
CI / changes (push) Waiting to run
CI / Check Rust Code Format (push) Blocked by required conditions
CI / Build and Test Rust Project (push) Blocked by required conditions
CI / Build and Test TLS Backend (native-tls) (push) Blocked by required conditions
CI / Build and Test TLS Backend (rustls-tls) (push) Blocked by required conditions
CI / Build Rust Project on Windows (push) Waiting to run
CI / Check MSRV (push) Blocked by required conditions
CI / Lint Rust Code (push) Blocked by required conditions
CI / Check Generated Schemas are Up-to-Date (push) Blocked by required conditions
CI / Test and Lint Electron Desktop App (push) Blocked by required conditions
Deploy Documentation / deploy (push) Waiting to run
Publish Docker Image / docker (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Waiting to run
fix(release): signing environment (#10797)
2026-07-29 17:27:34 +00:00

204 lines
6.8 KiB
YAML

# This workflow builds release artifacts for release branches and publishes tagged releases.
on:
push:
paths-ignore:
- "documentation/**"
branches:
- "release/*"
tags:
- "v1.*"
name: Release
permissions:
contents: read
env:
# Set this repository Actions variable to "true" in GitHub Settings > Secrets and variables
# > Actions > Variables after a release containing desktop app-update.yml has shipped.
ENABLE_MAC_NATIVE_AUTO_UPDATE: ${{ vars.ENABLE_MAC_NATIVE_AUTO_UPDATE || 'false' }}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
# ------------------------------------
# 1) Build CLI targets not produced by desktop workflows
# ------------------------------------
build-cli-linux:
uses: ./.github/workflows/build-cli-linux.yml
# ------------------------------------
# 2) Upload Install CLI Script
# ------------------------------------
install-script:
name: Upload Install Script
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: download_cli.sh
path: download_cli.sh
# ------------------------------------------------------------
# 3) Bundle CLI and Desktop (macOS ARM64)
# ------------------------------------------------------------
bundle-macos-arm64:
uses: ./.github/workflows/bundle-macos.yml
permissions:
contents: read
with:
target: aarch64-apple-darwin
package_cli: true
package_desktop: true
signing: ${{ startsWith(github.ref, 'refs/tags/') }}
environment: ${{ startsWith(github.ref, 'refs/tags/') && 'signing' || '' }}
secrets: inherit
# ------------------------------------------------------------
# 4) Bundle CLI and Desktop (macOS x64)
# ------------------------------------------------------------
bundle-macos-x64:
uses: ./.github/workflows/bundle-macos.yml
permissions:
contents: read
with:
target: x86_64-apple-darwin
package_cli: true
package_desktop: true
signing: ${{ startsWith(github.ref, 'refs/tags/') }}
environment: ${{ startsWith(github.ref, 'refs/tags/') && 'signing' || '' }}
secrets: inherit
# ------------------------------------------------------------
# 5) Bundle Desktop App (Linux)
# ------------------------------------------------------------
bundle-desktop-linux:
uses: ./.github/workflows/bundle-desktop-linux.yml
# ------------------------------------------------------------
# 6) Bundle CLI and Desktop (Windows)
# ------------------------------------------------------------
bundle-windows:
uses: ./.github/workflows/bundle-windows.yml
permissions:
id-token: write
contents: read
with:
package_cli: true
package_desktop: true
signing: ${{ startsWith(github.ref, 'refs/tags/') }}
environment: ${{ startsWith(github.ref, 'refs/tags/') && 'signing' || '' }}
secrets: inherit
bundle-windows-cuda:
uses: ./.github/workflows/bundle-windows.yml
permissions:
id-token: write
contents: read
with:
package_cli: true
package_desktop: true
signing: ${{ startsWith(github.ref, 'refs/tags/') }}
environment: ${{ startsWith(github.ref, 'refs/tags/') && 'signing' || '' }}
windows_variant: cuda
secrets: inherit
# ------------------------------------
# 7) Create/Update GitHub Release
# ------------------------------------
release:
name: Release
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
needs: [build-cli-linux, install-script, bundle-macos-arm64, bundle-macos-x64, bundle-desktop-linux, bundle-windows, bundle-windows-cuda]
permissions:
contents: write
id-token: write # Required for Sigstore OIDC signing
attestations: write # Required for SLSA build provenance attestations
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Create source code bundles
run: |
git archive --format=tar.gz --prefix="goose-${GITHUB_REF_NAME}/" --output="goose-source-${GITHUB_REF_NAME}.tar.gz" HEAD
git archive --format=zip --prefix="goose-${GITHUB_REF_NAME}/" --output="goose-source-${GITHUB_REF_NAME}.zip" HEAD
- name: Download release artifacts
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
pattern: '!internal-*'
merge-multiple: true
- name: Generate macOS update manifest
if: ${{ env.ENABLE_MAC_NATIVE_AUTO_UPDATE == 'true' }}
run: node ui/desktop/scripts/generate-mac-update-manifest.js --version "${GITHUB_REF_NAME}" --directory .
- name: Attest macOS update manifest
if: ${{ env.ENABLE_MAC_NATIVE_AUTO_UPDATE == 'true' }}
uses: actions/attest-build-provenance@0f67c3f4856b2e3261c31976d6725780e5e4c373 # v4.1.1
with:
subject-path: latest-mac.yml
- name: Attest build provenance
uses: actions/attest-build-provenance@0f67c3f4856b2e3261c31976d6725780e5e4c373 # v4.1.1
with:
subject-path: |
goose-*.tar.bz2
goose-*.tar.gz
goose-*.zip
Goose*.zip
*.deb
*.rpm
*.flatpak
download_cli.sh
# Create/update the versioned release
- name: Release versioned
uses: ncipollo/release-action@339a81892b84b4eeb0f6e744e4574d79d0d9b8dd # v1.21.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
artifacts: |
goose-*.tar.bz2
goose-*.tar.gz
goose-*.zip
Goose*.zip
*.deb
*.rpm
*.flatpak
download_cli.sh
allowUpdates: true
omitBody: true
omitPrereleaseDuringUpdate: true
# Create/update the stable release
- name: Release stable
uses: ncipollo/release-action@339a81892b84b4eeb0f6e744e4574d79d0d9b8dd # v1.21.0
with:
tag: stable
name: Stable
token: ${{ secrets.GITHUB_TOKEN }}
artifacts: |
goose-*.tar.bz2
goose-*.tar.gz
goose-*.zip
Goose*.zip
*.deb
*.rpm
*.flatpak
download_cli.sh
allowUpdates: true
omitBody: true
omitPrereleaseDuringUpdate: true
- name: Upload macOS update manifest
if: ${{ env.ENABLE_MAC_NATIVE_AUTO_UPDATE == 'true' }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload "${GITHUB_REF_NAME}" latest-mac.yml --clobber
gh release upload stable latest-mac.yml --clobber