Merge pull request #91 from ekvedaras/dependabot/npm_and_yarn/vite-3.… #49
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 | |
paths-ignore : | |
- '**.md' | |
- '**.spec.js' | |
- '.idea' | |
- '.gitignore' | |
- '.github/**' | |
- '!.github/workflows/release.yml' | |
concurrency : | |
group : release-${{ github.ref }} | |
cancel-in-progress : true | |
defaults : | |
run : | |
shell : 'bash' | |
jobs : | |
draft : | |
runs-on : ubuntu-latest | |
outputs : | |
release-note : ${{ steps.release-note.outputs.release-note }} | |
version : ${{ steps.version.outputs.build-version }} | |
steps : | |
- uses : actions/checkout@v2 | |
with : | |
fetch-depth : 0 | |
- uses : actions/setup-node@v2 | |
with : | |
node-version : 14 | |
- name : Get last git tag | |
id : tag | |
run : echo "::set-output name=last-tag::$(git describe --tags --abbrev=0 || git rev-list --max-parents=0 ${{github.ref}})" | |
- name : Generate release notes | |
uses : ./.github/actions/release-notes | |
id : release-note | |
with : | |
from : ${{ steps.tag.outputs.last-tag }} | |
to : ${{ github.ref }} | |
include-commit-body : true | |
include-abbreviated-commit : true | |
- name : Get version from current date | |
id : version | |
run : echo "::set-output name=build-version::$(node -e "try{console.log(require('./.electron-builder.config.js').extraMetadata.version)}catch(e){console.error(e);process.exit(1)}")" | |
- name : Waiting on All checks | |
uses : lewagon/[email protected] | |
with : | |
ref : ${{ github.ref }} | |
repo-token : ${{ secrets.GITHUB_TOKEN }} | |
running-workflow-name : 'draft' | |
- name : Delete outdated drafts | |
uses : hugo19941994/[email protected] | |
env : | |
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }} | |
- name : Create Release Draft | |
uses : softprops/action-gh-release@v1 | |
env : | |
GITHUB_TOKEN : ${{ secrets.github_token }} | |
with : | |
prerelease : true | |
draft : true | |
tag_name : v${{ steps.version.outputs.build-version }} | |
name : v${{ steps.version.outputs.build-version }} | |
body : ${{ steps.release-note.outputs.release-note }} | |
upload_artifacts : | |
needs : [ draft ] | |
strategy : | |
matrix : | |
os : [ windows-latest, macos-latest, ubuntu-latest ] | |
runs-on : ${{ matrix.os }} | |
steps : | |
- uses : actions/checkout@v2 | |
- uses : actions/setup-node@v2 | |
with : | |
node-version : 16 # Need for npm >=7.7 | |
cache : 'yarn' | |
- name : Install dependencies | |
run : yarn install | |
# The easiest way to transfer release notes to a compiled application is create `release-notes.md` in the build resources. | |
# See https://github.com/electron-userland/electron-builder/issues/1511#issuecomment-310160119 | |
- name : Prepare release notes | |
env : | |
RELEASE_NOTE : ${{ needs.draft.outputs.release-note }} | |
run : echo "$RELEASE_NOTE" >> ./buildResources/release-notes.md | |
- name : Install Snapcraft | |
uses : samuelmeuli/action-snapcraft@v1 | |
# Only install Snapcraft on Ubuntu | |
if : startsWith(matrix.os, 'ubuntu') | |
with : | |
# Log in to Snap Store | |
snapcraft_token : ${{ secrets.snapcraft_token }} | |
# Compile app and upload artifacts | |
- name : Compile & release Electron app | |
uses : samuelmeuli/action-electron-builder@v1 | |
env : | |
VITE_APP_VERSION : ${{ needs.draft.outputs.version }} | |
with : | |
build_script_name : build | |
args : --config .electron-builder.config.js | |
# GitHub token, automatically provided to the action | |
# (No need to define this secret in the repo settings) | |
github_token : ${{ secrets.github_token }} | |
# If the commit is tagged with a version (e.g. "v1.0.0"), | |
# release the app after building | |
release : true | |
# Sometimes the build may fail due to a connection problem with Apple, GitHub, etc. servers. | |
# This option will restart the build as many attempts as possible | |
max_attempts : 3 | |
# Code Signing params | |
# Base64-encoded code signing certificate for Windows | |
# windows_certs: '' | |
# Password for decrypting `windows_certs` | |
# windows_certs_password: '' | |
# Base64-encoded code signing certificate for macOS | |
# mac_certs: '' | |
# Password for decrypting `mac_certs` | |
# mac_certs_password: '' |