diff options
Diffstat (limited to '.github')
| -rw-r--r-- | .github/workflows/publish.yml | 161 |
1 files changed, 89 insertions, 72 deletions
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 8d7a823b1..2966ceb66 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -4,6 +4,7 @@ run-name: "${{ format('release {0}', inputs.bump) }}" on: push: branches: + - ci - dev - snapshot-* workflow_dispatch: @@ -29,56 +30,46 @@ permissions: packages: write jobs: - publish: + version: runs-on: blacksmith-4vcpu-ubuntu-2404 if: github.repository == 'anomalyco/opencode' steps: - uses: actions/checkout@v3 with: - fetch-depth: 0 - - - run: git fetch --force --tags - + fetch-depth: 1 - uses: ./.github/actions/setup-bun + - id: version + run: | + ./script/version.ts + env: + GH_TOKEN: ${{ github.token }} + OPENCODE_BUMP: ${{ inputs.bump }} + OPENCODE_VERSION: ${{ inputs.version }} + outputs: + version: ${{ steps.version.outputs.version }} + release: ${{ steps.version.outputs.release }} + tag: ${{ steps.version.outputs.tag }} - - name: Install OpenCode - if: inputs.bump || inputs.version - run: bun i -g [email protected] - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 + build-cli: + needs: version + runs-on: blacksmith-4vcpu-ubuntu-2404 + if: github.repository == 'anomalyco/opencode' + steps: + - uses: actions/checkout@v3 with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} + fetch-depth: 1 + fetch-tags: true - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - uses: actions/setup-node@v4 - with: - node-version: "24" - registry-url: "https://registry.npmjs.org" + - uses: ./.github/actions/setup-bun - - name: Setup Git Identity + - name: Build + id: build run: | - git config --global user.email "[email protected]" - git config --global user.name "opencode" - git remote set-url origin https://x-access-token:${{ secrets.SST_GITHUB_TOKEN }}@github.com/${{ github.repository }} - - - name: Publish - id: publish - run: ./script/publish-start.ts + ./packages/opencode/script/build.ts env: - OPENCODE_BUMP: ${{ inputs.bump }} - OPENCODE_VERSION: ${{ inputs.version }} - OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }} - AUR_KEY: ${{ secrets.AUR_KEY }} - GITHUB_TOKEN: ${{ secrets.SST_GITHUB_TOKEN }} - NPM_CONFIG_PROVENANCE: false + OPENCODE_VERSION: ${{ needs.version.outputs.version }} + OPENCODE_RELEASE: ${{ needs.version.outputs.release }} + GH_TOKEN: ${{ github.token }} - uses: actions/upload-artifact@v4 with: @@ -86,12 +77,12 @@ jobs: path: packages/opencode/dist outputs: - release: ${{ steps.publish.outputs.release }} - tag: ${{ steps.publish.outputs.tag }} - version: ${{ steps.publish.outputs.version }} + version: ${{ needs.version.outputs.version }} - publish-tauri: - needs: publish + build-tauri: + needs: + - build-cli + - version continue-on-error: false strategy: fail-fast: false @@ -111,8 +102,8 @@ jobs: steps: - uses: actions/checkout@v3 with: - fetch-depth: 0 - ref: ${{ needs.publish.outputs.tag }} + fetch-depth: 1 + fetch-tags: true - uses: apple-actions/import-codesign-certs@v2 if: ${{ runner.os == 'macOS' }} @@ -134,8 +125,6 @@ jobs: run: | echo "${{ secrets.APPLE_API_KEY_PATH }}" > $RUNNER_TEMP/apple-api-key.p8 - - run: git fetch --force --tags - - uses: ./.github/actions/setup-bun - name: install dependencies (ubuntu only) @@ -160,10 +149,7 @@ jobs: bun ./scripts/prepare.ts env: OPENCODE_VERSION: ${{ needs.publish.outputs.version }} - NPM_CONFIG_TOKEN: ${{ secrets.NPM_TOKEN }} GITHUB_TOKEN: ${{ secrets.SST_GITHUB_TOKEN }} - AUR_KEY: ${{ secrets.AUR_KEY }} - OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }} RUST_TARGET: ${{ matrix.settings.target }} GH_TOKEN: ${{ github.token }} GITHUB_RUN_ID: ${{ github.run_id }} @@ -177,22 +163,18 @@ jobs: cargo tauri --version - name: Build and upload artifacts - uses: Wandalen/wretry.action@v3 + uses: tauri-apps/tauri-action@390cbe447412ced1303d35abe75287949e43437a timeout-minutes: 60 with: - attempt_limit: 3 - attempt_delay: 10000 - action: tauri-apps/tauri-action@390cbe447412ced1303d35abe75287949e43437a - with: | - projectPath: packages/desktop - uploadWorkflowArtifacts: true - tauriScript: ${{ (contains(matrix.settings.host, 'ubuntu') && 'cargo tauri') || '' }} - args: --target ${{ matrix.settings.target }} --config ./src-tauri/tauri.prod.conf.json --verbose - updaterJsonPreferNsis: true - releaseId: ${{ needs.publish.outputs.release }} - tagName: ${{ needs.publish.outputs.tag }} - releaseAssetNamePattern: opencode-desktop-[platform]-[arch][ext] - releaseDraft: true + projectPath: packages/desktop + uploadWorkflowArtifacts: true + tauriScript: ${{ (contains(matrix.settings.host, 'ubuntu') && 'cargo tauri') || '' }} + args: --target ${{ matrix.settings.target }} --config ./src-tauri/tauri.prod.conf.json --verbose + updaterJsonPreferNsis: true + releaseId: ${{ needs.version.outputs.release }} + tagName: ${{ needs.version.outputs.tag }} + releaseDraft: true + releaseAssetNamePattern: opencode-desktop-[platform]-[arch][ext] env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} TAURI_BUNDLER_NEW_APPIMAGE_FORMAT: true @@ -205,20 +187,52 @@ jobs: APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }} APPLE_API_KEY_PATH: ${{ runner.temp }}/apple-api-key.p8 - publish-release: + publish: needs: - - publish - - publish-tauri - if: needs.publish.outputs.tag + - version + - build-cli + - build-tauri runs-on: blacksmith-4vcpu-ubuntu-2404 steps: - uses: actions/checkout@v3 with: - fetch-depth: 0 - ref: ${{ needs.publish.outputs.tag }} + fetch-depth: 1 + + - name: Install OpenCode + if: inputs.bump || inputs.version + run: bun i -g opencode-ai + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - uses: actions/setup-node@v4 + with: + node-version: "24" + registry-url: "https://registry.npmjs.org" + + - name: Setup Git Identity + run: | + git config --global user.email "[email protected]" + git config --global user.name "opencode" + git remote set-url origin https://x-access-token:${{ secrets.SST_GITHUB_TOKEN }}@github.com/${{ github.repository }} - uses: ./.github/actions/setup-bun + - uses: actions/download-artifact@v4 + with: + name: opencode-cli + path: packages/opencode/dist + - name: Setup SSH for AUR run: | sudo apt-get update @@ -230,8 +244,11 @@ jobs: git config --global user.name "opencode" ssh-keyscan -H aur.archlinux.org >> ~/.ssh/known_hosts || true - - run: ./script/publish-complete.ts + - run: ./script/publish.ts env: - OPENCODE_VERSION: ${{ needs.publish.outputs.version }} + OPENCODE_VERSION: ${{ needs.version.outputs.version }} + OPENCODE_RELEASE: ${{ needs.version.outputs.release }} AUR_KEY: ${{ secrets.AUR_KEY }} GITHUB_TOKEN: ${{ secrets.SST_GITHUB_TOKEN }} + OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }} + NPM_CONFIG_PROVENANCE: false |
