This repository has been archived by the owner on Aug 12, 2024. It is now read-only.
chore(deps): update dependency rollup to v4.20.0 - autoclosed #483
Workflow file for this run
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: Build YouTube Music | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
env: | |
NODE_VERSION: "20.x" | |
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@v4 | |
- name: Install pnpm | |
uses: pnpm/action-setup@v2 | |
with: | |
version: 8 | |
run_install: false | |
- name: Setup NodeJS | |
if: startsWith(matrix.os, 'macOS') != true | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: 'pnpm' | |
- name: Setup NodeJS for macOS | |
if: startsWith(matrix.os, 'macOS') | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Install dependencies | |
run: pnpm install --frozen-lockfile | |
# Only vite build without release if it is a fork, or it is a pull-request | |
- name: Vite Build | |
if: github.repository == 'th-ch/youtube-music' && github.event_name == 'pull_request' | |
run: | | |
pnpm build | |
# Build and release if it's the main repository and is not pull-request | |
- name: Build and release on Mac | |
if: startsWith(matrix.os, 'macOS') && (github.repository == 'th-ch/youtube-music' && github.event_name != 'pull_request') | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
pnpm release:mac | |
- name: Build and release on Linux | |
if: startsWith(matrix.os, 'ubuntu') && (github.repository == 'th-ch/youtube-music' && github.event_name != 'pull_request') | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
pnpm release:linux | |
- name: Build and release on Windows | |
if: startsWith(matrix.os, 'windows') && (github.repository == 'th-ch/youtube-music' && github.event_name != 'pull_request') | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
pnpm release:win | |
- name: Test | |
uses: coactions/setup-xvfb@v1 | |
env: | |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 | |
with: | |
run: pnpm test:debug | |
release: | |
runs-on: ubuntu-latest | |
name: Release YouTube Music | |
if: github.repository == 'th-ch/youtube-music' && github.ref == 'refs/heads/master' | |
needs: build | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install pnpm | |
uses: pnpm/action-setup@v2 | |
with: | |
version: 8 | |
run_install: false | |
- name: Setup NodeJS | |
if: startsWith(matrix.os, 'macOS') != true | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: 'pnpm' | |
- name: Setup NodeJS for macOS | |
if: startsWith(matrix.os, 'macOS') | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Install dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Get version | |
run: | | |
echo "VERSION_TAG=v$(node -pe "require('./package.json').version")" >> $GITHUB_ENV | |
- name: Check if version already exists in tags | |
run: | | |
echo "VERSION_HASH=$(git rev-parse -q --verify 'refs/tags/${{ env.VERSION_TAG }}')" >> $GITHUB_ENV | |
echo "CHANGELOG_ANCHOR=$(echo $VERSION_TAG | sed -e 's/\.//g')" >> $GITHUB_ENV | |
- name: Fetch draft release | |
if: ${{ env.VERSION_HASH == '' }} | |
uses: cardinalby/git-get-release-action@v1 | |
id: get_draft_release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
latest: true | |
draft: true | |
searchLimit: 1 | |
- name: Publish Release (if it does not exist) | |
if: ${{ env.VERSION_HASH == '' }} | |
uses: irongut/[email protected] | |
with: | |
token: ${{ secrets.GH_TOKEN }} | |
id: ${{ steps.get_draft_release.outputs.id }} | |
draft: false | |
prerelease: false | |
replacename: true | |
name: ${{ env.VERSION_TAG }} | |
replacebody: true | |
body: | | |
See [changelog](https://github.com/th-ch/youtube-music/blob/master/changelog.md#${{ env.CHANGELOG_ANCHOR }}) for the list of updates and the full diff. | |
Thanks to all contributors! 🏅 | |
(Note for Windows: `YouTube-Music-Web-Setup-${{ env.VERSION_TAG }}.exe` is an installer, and `YouTube-Music-${{ env.VERSION_TAG }}.exe` is a portable version) | |
- name: Update changelog | |
if: ${{ env.VERSION_HASH == '' }} | |
run: | | |
pnpm changelog | |
- name: Commit changelog | |
if: ${{ env.VERSION_HASH == '' }} | |
uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
commit_message: Update changelog for ${{ env.VERSION_TAG }} | |
file_pattern: "changelog.md" | |
commit_user_name: CI | |
commit_user_email: [email protected] |