chore: expand 2.0.3 release notes #85
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release GPUI Desktop | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| workflow_dispatch: | |
| inputs: | |
| tag: | |
| description: "Source tag to build, for example v1.0.0-beta.1." | |
| required: false | |
| default: v1.0.0-beta.1 | |
| type: string | |
| channel: | |
| description: "Update channel to publish." | |
| required: false | |
| default: auto | |
| type: choice | |
| options: | |
| - auto | |
| - beta | |
| - stable | |
| permissions: | |
| contents: write | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| MACOSX_DEPLOYMENT_TARGET: "14.0" | |
| CMAKE_OSX_DEPLOYMENT_TARGET: "14.0" | |
| jobs: | |
| metadata: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| version: ${{ steps.meta.outputs.version }} | |
| channel: ${{ steps.meta.outputs.channel }} | |
| source_ref: ${{ steps.ref.outputs.source_ref }} | |
| env: | |
| SOURCE_REF: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref_name }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref }} | |
| - name: Resolve source ref | |
| id: ref | |
| shell: bash | |
| run: echo "source_ref=${SOURCE_REF}" >> "$GITHUB_OUTPUT" | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Resolve release metadata | |
| id: meta | |
| shell: bash | |
| env: | |
| RELEASE_NOTES_PATH: dist/release-notes.md | |
| run: | | |
| mkdir -p dist | |
| requested_channel="${{ github.event_name == 'workflow_dispatch' && inputs.channel || 'auto' }}" | |
| node apps/desktop/scripts/release/prepare-release.mjs "${SOURCE_REF}" "${requested_channel}" | |
| - name: Upload release notes | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: release-notes | |
| path: dist/release-notes.md | |
| if-no-files-found: error | |
| build: | |
| needs: metadata | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - id: macos-aarch64 | |
| os: macos-26 | |
| target: aarch64-apple-darwin | |
| artifact_suffix: -debug | |
| - id: macos-x86_64 | |
| os: macos-26 | |
| target: x86_64-apple-darwin | |
| artifact_suffix: -debug | |
| - id: windows-x86_64 | |
| os: windows-latest | |
| target: x86_64-pc-windows-msvc | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| CARGO_BUILD_TARGET: ${{ matrix.target }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ needs.metadata.outputs.source_ref }} | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: ${{ matrix.targets || matrix.target }} | |
| - name: Restore Rust cache | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| target | |
| key: rust-release-${{ runner.os }}-${{ matrix.id }}-${{ hashFiles('Cargo.lock') }} | |
| restore-keys: | | |
| rust-release-${{ runner.os }}-${{ matrix.id }}- | |
| rust-release-${{ runner.os }}- | |
| - name: Apply release version | |
| shell: bash | |
| env: | |
| RELEASE_NOTES_PATH: dist/release-notes.md | |
| run: | | |
| mkdir -p dist | |
| node apps/desktop/scripts/release/prepare-release.mjs "${{ needs.metadata.outputs.source_ref }}" "${{ needs.metadata.outputs.channel }}" | |
| - name: Build | |
| shell: bash | |
| run: | | |
| if [[ "${RUNNER_OS}" == "Windows" ]]; then | |
| pwsh -NoProfile -ExecutionPolicy Bypass -File tools/build-windows.ps1 -Target "${CARGO_BUILD_TARGET}" | |
| else | |
| cargo build --release --target "${CARGO_BUILD_TARGET}" | |
| fi | |
| - name: Stage built binary | |
| shell: bash | |
| run: | | |
| rm -rf dist/binary | |
| mkdir -p dist/binary | |
| if [[ "${RUNNER_OS}" == "Windows" ]]; then | |
| cp "target/${CARGO_BUILD_TARGET}/release/codux.exe" dist/binary/codux.exe | |
| cp "target/${CARGO_BUILD_TARGET}/release/codux-wrapper-helper.exe" dist/binary/codux-wrapper-helper.exe | |
| elif [[ "${RUNNER_OS}" == "macOS" ]]; then | |
| cp "target/${CARGO_BUILD_TARGET}/release/codux" dist/binary/codux | |
| else | |
| cp "target/${CARGO_BUILD_TARGET}/release/codux" dist/binary/codux | |
| fi | |
| - name: Upload built binary | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: built-binary-${{ matrix.id }} | |
| path: dist/binary/* | |
| if-no-files-found: error | |
| - name: Save Rust cache | |
| if: always() | |
| continue-on-error: true | |
| uses: actions/cache/save@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| target | |
| key: rust-release-${{ runner.os }}-${{ matrix.id }}-${{ hashFiles('Cargo.lock') }}-${{ github.run_id }} | |
| package: | |
| needs: | |
| - metadata | |
| - build | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - id: macos-aarch64 | |
| os: macos-26 | |
| target: aarch64-apple-darwin | |
| artifact_suffix: -debug | |
| - id: macos-x86_64 | |
| os: macos-26 | |
| target: x86_64-apple-darwin | |
| artifact_suffix: -debug | |
| - id: windows-x86_64 | |
| os: windows-latest | |
| target: x86_64-pc-windows-msvc | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| CARGO_BUILD_TARGET: ${{ matrix.target }} | |
| RELEASE_BUILD_ID: ${{ matrix.id }} | |
| RELEASE_STAGE_DIR: release-artifacts | |
| RELEASE_ARTIFACT_SUFFIX: ${{ matrix.artifact_suffix || '' }} | |
| MACOS_ADHOC_SIGN: ${{ startsWith(matrix.id, 'macos-') && 'true' || '' }} | |
| TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} | |
| TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ needs.metadata.outputs.source_ref }} | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Install NSIS | |
| if: runner.os == 'Windows' | |
| shell: powershell | |
| run: choco install nsis -y --no-progress | |
| - name: Apply release version | |
| shell: bash | |
| env: | |
| RELEASE_NOTES_PATH: dist/release-notes.md | |
| run: | | |
| mkdir -p dist | |
| node apps/desktop/scripts/release/prepare-release.mjs "${{ needs.metadata.outputs.source_ref }}" "${{ needs.metadata.outputs.channel }}" | |
| - name: Download built binary | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: built-binary-${{ matrix.id }} | |
| path: dist/binary | |
| - name: Restore built binary | |
| shell: bash | |
| run: | | |
| mkdir -p "target/${CARGO_BUILD_TARGET}/release" | |
| if [[ "${RUNNER_OS}" == "Windows" ]]; then | |
| cp dist/binary/codux.exe "target/${CARGO_BUILD_TARGET}/release/codux.exe" | |
| cp dist/binary/codux-wrapper-helper.exe "target/${CARGO_BUILD_TARGET}/release/codux-wrapper-helper.exe" | |
| elif [[ "${RUNNER_OS}" == "macOS" ]]; then | |
| cp dist/binary/codux "target/${CARGO_BUILD_TARGET}/release/codux" | |
| chmod +x "target/${CARGO_BUILD_TARGET}/release/codux" | |
| else | |
| cp dist/binary/codux "target/${CARGO_BUILD_TARGET}/release/codux" | |
| chmod +x "target/${CARGO_BUILD_TARGET}/release/codux" | |
| fi | |
| - name: Package | |
| shell: bash | |
| run: node apps/desktop/scripts/release/package-gpui.mjs | |
| - name: Upload package artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: package-${{ matrix.id }} | |
| path: release-artifacts/${{ matrix.id }}/* | |
| if-no-files-found: error | |
| publish: | |
| needs: | |
| - metadata | |
| - package | |
| runs-on: ubuntu-latest | |
| env: | |
| RELEASE_VERSION: ${{ needs.metadata.outputs.version }} | |
| RELEASE_CHANNEL: ${{ needs.metadata.outputs.channel }} | |
| RELEASE_TAG: ${{ needs.metadata.outputs.source_ref }} | |
| RELEASE_NOTES_PATH: dist/release-notes.md | |
| RELEASE_ARTIFACTS_DIR: release-artifacts | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ needs.metadata.outputs.source_ref }} | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Download release notes | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: release-notes | |
| path: dist | |
| - name: Download packages | |
| uses: actions/download-artifact@v4 | |
| with: | |
| pattern: package-* | |
| path: release-artifacts | |
| merge-multiple: true | |
| - name: Publish GitHub release and update metadata | |
| run: node apps/desktop/scripts/release/publish-github-release.mjs |