Skip to content

Instantly share code, notes, and snippets.

@azu
Created September 17, 2019 12:02
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save azu/673426500458f63f019c8f5e013f282a to your computer and use it in GitHub Desktop.
Save azu/673426500458f63f019c8f5e013f282a to your computer and use it in GitHub Desktop.
Electron Release workflow for GitHub Actions
name: Electron CD
on: [push]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macOS-10.14, windows-2016, ubuntu-18.04]
steps:
- name: Context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v1
with:
fetch-depth: 1
- name: Use Node.js 10.x
uses: actions/setup-node@v1
with:
node-version: 10.x
- name: yarn install
run: |
yarn install
- name: Publish
run: |
yarn run dist
- name: Cleanup artifacts
run: |
npx rimraf "dist/!(*.exe|*.deb|*.AppImage|*.dmg)"
- name: Upload artifacts
uses: actions/upload-artifact@v1
with:
name: ${{ matrix.os }}
path: dist
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: "dist/**"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@vipzero
Copy link

vipzero commented Nov 19, 2019

It works. Avoid using | operator at windows(powershell)

...

    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macOS-latest]
...

      - name: Cleanup artifacts
        if: matrix.os != 'windows-latest'
        run: |
          mkdir artifacts
          mv "dist/(*.exe,*.deb,*.AppImage,*.dmg)" artifacts || true
      - name: Cleanup artifacts Win
        if: matrix.os == 'windows-latest'
        run: |
          mkdir artifacts
          mv dist/*.exe artifacts
      - name: Upload artifacts
        uses: actions/upload-artifact@v1
        with:
          name: ${{matrix.os}}
          path: artifacts
      - name: Release
        uses: softprops/action-gh-release@v1
        if: startsWith(github.ref, 'refs/tags/')
        with:
          files: "artifacts/**"
        env:
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

@NoelDavies
Copy link

I ended up doing 2 different flows dependant on OS. I'll have a look at the latest one and see how that fairs.

@brunolaranjeira
Copy link

Thanks @vipzero, that worked like a charm.

@FafMio
Copy link

FafMio commented Oct 20, 2022

yarn run dist command not found, any idea ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment