Skip to content

🤖 perf: async workspace name generation for faster UX #5508

🤖 perf: async workspace name generation for faster UX

🤖 perf: async workspace name generation for faster UX #5508

Workflow file for this run

name: Build
on:
pull_request:
branches: ["**"]
merge_group:
workflow_dispatch: # Allow manual triggering
jobs:
build-macos:
name: Build macOS
runs-on: ${{ github.repository_owner == 'coder' && 'depot-macos-15' || 'macos-latest' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Required for git describe to find tags
- uses: ./.github/actions/setup-mux
# Skip signing setup for PRs - electron-builder skips signing anyway,
# but setting CSC_LINK forces our Makefile to build sequentially.
# Without CSC_LINK, x64 and arm64 build in parallel (~90s savings).
- name: Setup code signing
if: github.event_name != 'pull_request'
run: ./scripts/setup-macos-signing.sh
env:
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
AC_APIKEY_P8_BASE64: ${{ secrets.AC_APIKEY_P8_BASE64 }}
AC_APIKEY_ID: ${{ secrets.AC_APIKEY_ID }}
AC_APIKEY_ISSUER_ID: ${{ secrets.AC_APIKEY_ISSUER_ID }}
- name: Verify signing setup
if: github.event_name != 'pull_request'
run: |
if [ -n "${CSC_LINK:-}" ]; then
echo "✅ Code signing enabled"
security list-keychains -d user
security find-identity -v -p codesigning
else
echo "⚠️ Code signing NOT enabled"
fi
- name: Package for macOS
run: make dist-mac
- name: Upload macOS DMG (x64)
uses: actions/upload-artifact@v4
with:
name: macos-dmg-x64
path: release/*-x64.dmg
retention-days: 30
if-no-files-found: error
- name: Upload macOS DMG (arm64)
uses: actions/upload-artifact@v4
with:
name: macos-dmg-arm64
path: release/*-arm64.dmg
retention-days: 30
if-no-files-found: error
build-linux:
name: Build Linux
runs-on: ${{ github.repository_owner == 'coder' && 'depot-ubuntu-22.04-16' || 'ubuntu-latest' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Required for git describe to find tags
- uses: ./.github/actions/setup-mux
- name: Build application
run: bun run build
- name: Package for Linux
run: make dist-linux
- name: Upload Linux AppImage
uses: actions/upload-artifact@v4
with:
name: linux-appimage
path: release/*.AppImage
retention-days: 30
if-no-files-found: error
build-vscode-extension:
name: Build VS Code Extension
runs-on: ${{ github.repository_owner == 'coder' && 'depot-ubuntu-22.04-16' || 'ubuntu-latest' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Required for git describe to find tags
- uses: ./.github/actions/setup-mux
- uses: ./.github/actions/build-vscode-extension
- name: Upload VS Code extension artifact
uses: actions/upload-artifact@v4
with:
name: vscode-extension
path: vscode/mux-*.vsix
retention-days: 30
if-no-files-found: error