mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-10 18:21:47 +00:00
117 lines
3.8 KiB
YAML
117 lines
3.8 KiB
YAML
name: Build YouTube Music
|
|
|
|
on:
|
|
- push
|
|
|
|
jobs:
|
|
build:
|
|
name: Build YouTube Music
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: true
|
|
matrix:
|
|
os: [macos-latest, ubuntu-latest, windows-latest]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Setup NodeJS
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: "16.x"
|
|
|
|
- name: Get yarn cache directory path
|
|
id: yarn-cache-dir-path
|
|
run: echo "::set-output name=dir::$(yarn cache dir)"
|
|
|
|
- uses: actions/cache@v3
|
|
id: yarn-cache
|
|
with:
|
|
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
|
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-yarn-
|
|
|
|
- name: Install dependencies
|
|
run: yarn --frozen-lockfile
|
|
|
|
######################
|
|
# Patch SnoreToast to fix App ID - see https://github.com/th-ch/youtube-music/issues/479#issuecomment-965473559
|
|
- name: SnoreToast - parameters
|
|
id: snoretoast-params
|
|
if: startsWith(matrix.os, 'windows')
|
|
shell: bash
|
|
run: |
|
|
echo "::set-output name=version::v0.8.0"
|
|
echo "::set-output name=path::./vendor/snoretoast"
|
|
|
|
- name: SnoreToast - cache
|
|
id: snoretoast-cache
|
|
uses: actions/cache@v2
|
|
if: startsWith(matrix.os, 'windows')
|
|
with:
|
|
path: ${{ steps.snoretoast-params.outputs.path }}
|
|
key: snoretoast-${{ steps.snoretoast-params.outputs.version }}
|
|
|
|
- name: SnoreToast - compile
|
|
if: |
|
|
startsWith(matrix.os, 'windows') &&
|
|
steps.snoretoast-cache.outputs.cache-hit != 'true'
|
|
shell: bash
|
|
run: |
|
|
SNORETOAST_TAG="${{ steps.snoretoast-params.outputs.version }}"
|
|
echo "Compiling SnoreToast $SNORETOAST_TAG"
|
|
|
|
git config --global user.email "th-ch@users.noreply.github.com"
|
|
git config --global user.name "YouTube Music"
|
|
git clone -c advice.detachedHead=false --branch $SNORETOAST_TAG --depth 1 https://github.com/KDE/snoretoast.git ${{ steps.snoretoast-params.outputs.path }}
|
|
cd ${{ steps.snoretoast-params.outputs.path }}
|
|
|
|
# Apply https://github.com/KDE/snoretoast/pull/15/commits/c5faeceaf36f4b9fb27e5269990b716a25ecbe43
|
|
# Patch generated with `git format-patch -1 c5faeceaf36f4b9fb27e5269990b716a25ecbe43`
|
|
git am < ../snoretoast-patch/0001-Fix-activation-not-writing-to-pipe.patch
|
|
|
|
# Compile for win32
|
|
cmake -A Win32 -B build32
|
|
cmake --build build32 --config Release
|
|
|
|
# Compile for x64
|
|
cmake -A x64 -B build64
|
|
cmake --build build64 --config Release
|
|
|
|
- name: SnoreToast - overwrite with custom build
|
|
if: startsWith(matrix.os, 'windows')
|
|
shell: bash
|
|
run: |
|
|
# Override SnoreToast with the patched versions
|
|
cp ${{ steps.snoretoast-params.outputs.path }}/build32/bin/Release/snoretoast.exe ./node_modules/node-notifier/vendor/snoreToast/snoretoast-x86.exe
|
|
cp ${{ steps.snoretoast-params.outputs.path }}/build64/bin/Release/snoretoast.exe ./node_modules/node-notifier/vendor/snoreToast/snoretoast-x64.exe
|
|
# End of SnoreToast patch
|
|
######################
|
|
|
|
- name: Test
|
|
uses: GabrielBB/xvfb-action@v1
|
|
with:
|
|
run: yarn test
|
|
|
|
- name: Build on Mac
|
|
if: startsWith(matrix.os, 'macOS')
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
|
run: |
|
|
yarn run release:mac
|
|
|
|
- name: Build on Linux
|
|
if: startsWith(matrix.os, 'ubuntu')
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
|
run: |
|
|
yarn run release:linux
|
|
|
|
- name: Build on Windows
|
|
if: startsWith(matrix.os, 'windows')
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
|
run: |
|
|
yarn run release:win
|