Skip to content

ci: build for distribution #50

ci: build for distribution

ci: build for distribution #50

Workflow file for this run

name: release
on:
# TODO: Switch to on `v*` tag push
pull_request:
# permissions:
# # To upload assets to the release
# contents: write
jobs:
build:
runs-on: ${{ github.repository_owner == 'coder' && 'depot-macos-latest' || 'macos-latest'}}
if: ${{ github.repository_owner == 'coder' }}
env:
CERT_PATH: /tmp/apple_cert.p12
APP_PROF_PATH: /tmp/app.provisionprofile
EXT_PROF_PATH: /tmp/ext.provisionprofile
KEYCHAIN_PATH: /tmp/app-signing.keychain-db
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 1
- name: Switch XCode Version
uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0
with:
xcode-version: "16.0.0"
- name: Install Cert & Retrieve Provisioning Profiles
env:
APPLE_CERT: ${{ secrets.APPLE_DEVELOPER_ID_PKCS12_B64 }}
CERT_PASSWORD: ${{ secrets.APPLE_DEVELOPER_ID_PKCS12_PASSWORD }}
APP_PROF: ${{ secrets.CODER_DESKTOP_APP_PROVISIONPROFILE_B64 }}
EXT_PROF: ${{ secrets.CODER_DESKTOP_EXTENSION_PROVISIONPROFILE_B64 }}
run: |
set -euo pipefail
touch "$CERT_PATH" "$APP_PROF_PATH" "$EXT_PROF_PATH"
echo "$APPLE_CERT" | base64 -d > "$CERT_PATH"
echo "$APP_PROF" | base64 -d > "$APP_PROF_PATH"
echo "$EXT_PROF" | base64 -d > "$EXT_PROF_PATH"
set -x
security create-keychain -p "" "$KEYCHAIN_PATH"
security set-keychain-settings -lut 21600 "$KEYCHAIN_PATH"
security unlock-keychain -p "" "$KEYCHAIN_PATH"
security import "$CERT_PATH" -P "$CERT_PASSWORD" -A -t cert -f pkcs12 -k "$KEYCHAIN_PATH"
security list-keychain -d user -s "$KEYCHAIN_PATH"
- name: Setup Deps
run: |
brew install xcodegen
npm install --global create-dmg
- name: Build
env:
APPLE_ID: ${{ secrets.APPLE_NOTARYTOOL_USERNAME }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_NOTARYTOOL_PASSWORD }}
run: |
./scripts/build.sh
- name: Upload Build Artifacts
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
with:
name: app
path: |
./build
retention-days: 7
- name: Clean Up
if: always()
run: |
security delete-keychain "$KEYCHAIN_PATH"
rm -f /tmp/{apple_cert.p12,app.provisionprofile,ext.provisionprofile,app-signing.keychain-db}