feat: add conflict descriptions and file sync context menu (#126) #131
This file contains 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 | |
on: | |
push: | |
branches: | |
- main | |
release: | |
types: [published] | |
workflow_dispatch: | |
inputs: | |
dryrun: | |
description: 'Run in dry-run mode (upload as artifact instead of release asset)' | |
required: true | |
type: boolean | |
default: false | |
permissions: {} | |
# Cancel in-progress runs for when multiple PRs get merged | |
# in quick succession. Ignore this for tag releases though. | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{ !contains(github.ref, 'tags/')}} | |
jobs: | |
build: | |
name: Build Coder Desktop | |
runs-on: ${{ github.repository_owner == 'coder' && 'depot-macos-latest' || 'macos-latest'}} | |
if: ${{ github.repository_owner == 'coder' }} | |
permissions: | |
# To upload assets to the release | |
contents: write | |
steps: | |
- name: Checkout | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
persist-credentials: false | |
- name: Switch XCode Version | |
uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0 | |
with: | |
xcode-version: "16.0.0" | |
- name: Setup Nix | |
uses: ./.github/actions/nix-devshell | |
- name: Build | |
env: | |
APPLE_DEVELOPER_ID_PKCS12_B64: ${{ secrets.APPLE_DEVELOPER_ID_PKCS12_B64 }} | |
APPLE_DEVELOPER_ID_PKCS12_PASSWORD: ${{ secrets.APPLE_DEVELOPER_ID_PKCS12_PASSWORD }} | |
APPLE_INSTALLER_PKCS12_B64: ${{ secrets.APPLE_INSTALLER_PKCS12_B64 }} | |
APPLE_INSTALLER_PKCS12_PASSWORD: ${{ secrets.APPLE_INSTALLER_PKCS12_PASSWORD }} | |
APPLE_ID: ${{ secrets.APPLE_NOTARYTOOL_USERNAME }} | |
APPLE_ID_PASSWORD: ${{ secrets.APPLE_NOTARYTOOL_PASSWORD }} | |
APP_PROF: ${{ secrets.CODER_DESKTOP_APP_PROVISIONPROFILE_B64 }} | |
EXT_PROF: ${{ secrets.CODER_DESKTOP_EXTENSION_PROVISIONPROFILE_B64 }} | |
run: make release | |
# Upload as artifact in dry-run mode | |
- name: Upload Build Artifact | |
if: ${{ inputs.dryrun }} | |
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 | |
with: | |
name: coder-desktop-build | |
path: ${{ github.workspace }}/outputs/out | |
retention-days: 7 | |
# Upload to release in non-dry-run mode | |
- name: Upload Release Assets | |
if: ${{ !inputs.dryrun }} | |
run: gh release upload "$RELEASE_TAG" "$out"/* --clobber | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
RELEASE_TAG: ${{ github.event_name == 'release' && github.event.release.tag_name || 'preview' }} | |
update-cask: | |
name: Update homebrew-coder cask | |
runs-on: ${{ github.repository_owner == 'coder' && 'depot-macos-latest' || 'macos-latest'}} | |
if: ${{ github.repository_owner == 'coder' && !inputs.dryrun }} | |
needs: build | |
steps: | |
- name: Checkout | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
persist-credentials: false | |
- name: Setup Nix | |
uses: ./.github/actions/nix-devshell | |
- name: Update homebrew-coder | |
env: | |
GH_TOKEN: ${{ secrets.CODERCI_GITHUB_TOKEN }} | |
RELEASE_TAG: ${{ github.event_name == 'release' && github.event.release.tag_name || 'preview' }} | |
ASSIGNEE: ${{ github.actor }} | |
run: | | |
git config --global user.email "[email protected]" | |
git config --global user.name "Coder CI" | |
gh auth setup-git | |
./scripts/update-cask.sh --version "$RELEASE_TAG" --assignee "$ASSIGNEE" |