undergroundwires/privacy.sexy

View on GitHub
.github/workflows/release.desktop.yaml

Summary

Maintainability
Test Coverage
name: release-desktop

on:
 release:
   types: [created] # will be triggered when a NON-draft release is created and published.

jobs:
  publish-desktop-app:
    name: ${{ matrix.os }}
    strategy:
      matrix:
        os: [macos, ubuntu, windows]
      fail-fast: false # So publish runs for other OSes if one fails
    runs-on: ${{ matrix.os }}-latest
    steps:
      -
        uses: actions/checkout@v4
        with:
          ref: master # otherwise it defaults to the version tag missing bump commit
          fetch-depth: 0 # fetch all history
      -
        name: Checkout to bump commit
        shell: bash
        run: git checkout "$(git rev-list "${{ github.event.release.tag_name }}"..master | tail -1)"
      -
        name: Setup node
        uses: ./.github/actions/setup-node
      -
        name: Install dependencies
        uses: ./.github/actions/npm-install-dependencies
      -
        name: Run unit tests
        run: npm run test:unit
      -
        name: Prebuild
        run: npm run electron:prebuild
      -
        name: Build and publish
        run: npm run electron:build -- --publish always
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          EP_GH_IGNORE_TIME: true # Otherwise publishing fails if GitHub release is more than 2 hours old https://github.com/electron-userland/electron-builder/issues/2074