Merge pull request #2167 from colawithsauce/master #639
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 | |
env: | |
YARN_INSTALL_NOPT: yarn add --ignore-platform --ignore-optional | |
on: | |
push: | |
branches: | |
- master | |
tags: | |
- v* | |
workflow_dispatch: | |
jobs: | |
release: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-latest, windows-latest, ubuntu-22.04] | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: "recursive" | |
- name: Install Node.js, NPM and Yarn | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
cache: 'yarn' | |
- name: Install RPM & Pacman (on Ubuntu) | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update && | |
sudo apt-get install --no-install-recommends -y rpm && | |
sudo apt-get install --no-install-recommends -y libarchive-tools && | |
sudo apt-get install --no-install-recommends -y libopenjp2-tools | |
- name: Install Snapcraft (on Ubuntu) | |
uses: samuelmeuli/action-snapcraft@v1 | |
if: startsWith(matrix.os, 'ubuntu') | |
with: | |
snapcraft_token: ${{ secrets.snapcraft_token }} | |
- id: get_unm_version | |
name: Get the installed UNM version | |
run: | | |
yarn --ignore-optional | |
unm_version=$(node -e "console.log(require('./node_modules/@unblockneteasemusic/rust-napi/package.json').version)") | |
echo "::set-output name=unmver::${unm_version}" | |
shell: bash | |
- name: Install UNM dependencies for Windows | |
if: runner.os == 'Windows' | |
run: | | |
${{ env.YARN_INSTALL_NOPT }} \ | |
@unblockneteasemusic/rust-napi-win32-x64-msvc@${{steps.get_unm_version.outputs.unmver}} | |
shell: bash | |
- name: Install UNM dependencies for macOS | |
if: runner.os == 'macOS' | |
run: | | |
${{ env.YARN_INSTALL_NOPT }} \ | |
@unblockneteasemusic/rust-napi-darwin-x64@${{steps.get_unm_version.outputs.unmver}} \ | |
@unblockneteasemusic/rust-napi-darwin-arm64@${{steps.get_unm_version.outputs.unmver}} \ | |
dmg-license | |
shell: bash | |
- name: Install UNM dependencies for Linux | |
if: runner.os == 'Linux' | |
run: | | |
${{ env.YARN_INSTALL_NOPT }} \ | |
@unblockneteasemusic/rust-napi-linux-x64-gnu@${{steps.get_unm_version.outputs.unmver}} \ | |
@unblockneteasemusic/rust-napi-linux-arm64-gnu@${{steps.get_unm_version.outputs.unmver}} \ | |
@unblockneteasemusic/rust-napi-linux-arm-gnueabihf@${{steps.get_unm_version.outputs.unmver}} | |
shell: bash | |
- name: Build/release Electron app | |
uses: samuelmeuli/[email protected] | |
env: | |
VUE_APP_ELECTRON_API_URL: /api | |
VUE_APP_ELECTRON_API_URL_DEV: http://127.0.0.1:10754 | |
VUE_APP_LASTFM_API_KEY: 09c55292403d961aa517ff7f5e8a3d9c | |
VUE_APP_LASTFM_API_SHARED_SECRET: 307c9fda32b3904e53654baff215cb67 | |
with: | |
# 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: ${{ startsWith(github.ref, 'refs/tags/v') }} | |
use_vue_cli: true | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: YesPlayMusic-mac | |
path: dist_electron/*-universal.dmg | |
if-no-files-found: ignore | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: YesPlayMusic-win | |
path: dist_electron/*Setup*.exe | |
if-no-files-found: ignore | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: YesPlayMusic-linux | |
path: dist_electron/*.AppImage | |
if-no-files-found: ignore |