Skip to content

Release v0.2.1 (#324) #130

Release v0.2.1 (#324)

Release v0.2.1 (#324) #130

name: Build Release Artifact
on:
workflow_dispatch:
push:
branches:
- main
permissions:
contents: read
concurrency:
group: build-artifact-main
cancel-in-progress: false
jobs:
build-artifact:
runs-on: macos-26
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- name: MacOS version
run: sw_vers
- name: Set up Homebrew
id: set_up_homebrew
uses: Homebrew/actions/setup-homebrew@master
- uses: gsabran/setup-swift@main
with:
swift-version: "6.2"
soft-fail-version-check: true
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: "26.0"
- uses: actions/setup-node@v4
with:
node-version-file: "./local-server/.nvmrc"
- name: Enable Corepack
run: corepack enable
- name: Install node dependencies
run: cd local-server && yarn install && yarn build && yarn copy-to-app
# See https://github.com/actions/runner-images/issues/10722#issuecomment-2387952421
- uses: extractions/netrc@v1
with:
machine: github.com
username: oauth2
password: ${{ secrets.GITHUB_TOKEN }}
- name: Install release dependencies
run: |
npm install --global create-dmg
npm install --global @bugsnag/cli
brew install graphicsmagick imagemagick sentry-cli
cd app/fastlane && gem install bundler && bundle install
- name: Load derived data cache
uses: actions/cache/restore@v4
with:
path: app/build/derived_data
key: ${{ runner.os }}-app-derived-data-main
- name: Build and sign release
run: cd app/fastlane && bundle exec fastlane mac build_artifact
env:
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: 60
FASTLANE_XCODEBUILD_SETTINGS_RETRIES: 10
FASTLANE_MACH_REPO_GITHUB_ACCESS_TOKEN: ${{ secrets.FASTLANE_MACH_REPO_GITHUB_ACCESS_TOKEN }}
MATCH_PASSWORD: ${{ secrets.FASTLANE_MACH_PASSWORD }}
NOTARY_KEY_ID: ${{ secrets.NOTARY_KEY_ID }}
NOTARY_P8: ${{ secrets.NOTARY_P8 }}
NOTARY_ISSUER_ID: ${{ secrets.NOTARY_ISSUER_ID }}
SPARKLE_SECRET_KEY: ${{ secrets.SPARKLE_SECRET_KEY }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
GITHUB_RUN_ATTEMPT: ${{ github.run_attempt }}
- name: Upload DMG artifact
uses: actions/upload-artifact@v4
with:
name: cmd-dmg
path: app/build/release/cmd.dmg
retention-days: 30