Skip to content

feat: support custom path for extra media #2860

feat: support custom path for extra media

feat: support custom path for extra media #2860

Workflow file for this run

name: Build/release
on:
push:
branches:
- master
paths-ignore:
- '.vscode/**'
- 'docs/**'
- '**/*.md'
pull_request:
paths-ignore:
- '.vscode/**'
- 'docs/**'
- '**/*.md'
workflow_dispatch:
jobs:
version_checker:
runs-on: ubuntu-latest
outputs:
VERSION_MATCH: ${{ steps.compare-versions.outputs.VERSION_MATCH }}
# permissions:
# contents: write
# pull-requests: write
# repository-projects: write
steps:
- name: Check out Git repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Read package version
uses: ZvonimirSun/read-package-version-actions@v2
id: package-version
- name: Get Latest Release Version
id: get-latest-release
uses: pozetroninc/[email protected]
with:
repository: ${{ github.repository }}
# token: ${{ secrets.GITHUB_TOKEN }}
# excludes: draft
# uses: InsonusK/[email protected]
# with:
# myToken: ${{ secrets.GITHUB_TOKEN }}
# exclude_types: 'draft'
- name: Compare versions and increment if needed
id: compare-versions
run: |
PACKAGE_VERSION="${{ steps.package-version.outputs.version }}"
GITHUB_RELEASE_VERSION="${{ steps.get-latest-release.outputs.release }}"
# Strip leading 'v' if present
GITHUB_RELEASE_VERSION="${GITHUB_RELEASE_VERSION#v}"
echo "Package version: $PACKAGE_VERSION"
echo "GitHub release version: $GITHUB_RELEASE_VERSION"
if [ "$PACKAGE_VERSION" = "$GITHUB_RELEASE_VERSION" ]; then
VERSION_MATCH=true
else
VERSION_MATCH=false
fi
echo "Versions are equal: $VERSION_MATCH"
echo "VERSION_MATCH=${VERSION_MATCH}" >> $GITHUB_ENV
echo "VERSION_MATCH=${VERSION_MATCH}" >> $GITHUB_OUTPUT
exit 0
- name: Create a pull request with version bump if needed
if: ${{ steps.compare-versions.outputs.VERSION_MATCH == 'true' }}
uses: r7kamura/[email protected]
with:
release_type: 'patch'
release:
needs: version_checker
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-13, macos-latest, windows-latest]
steps:
- name: Setup target Node.js to enable Corepack
uses: actions/setup-node@v4
with:
node-version: 22
- run: |
corepack enable
yarn -v
if: ${{ needs.version_checker.outputs.VERSION_MATCH == 'false' }}
- name: Check out Git repository
uses: actions/checkout@v4
if: ${{ needs.version_checker.outputs.VERSION_MATCH == 'false' }}
- name: Install Node.js, NPM and Yarn
uses: actions/setup-node@v4
if: ${{ needs.version_checker.outputs.VERSION_MATCH == 'false' }}
with:
node-version: 22
cache: 'yarn'
- run: |
yarn -v
if: ${{ needs.version_checker.outputs.VERSION_MATCH == 'false' }}
# - uses: actions/setup-python@v5
# if: ${{ needs.version_checker.outputs.VERSION_MATCH == 'false' }}
# with:
# python-version: '3.9'
# - run: |
# pip install setuptools
# if: ${{ needs.version_checker.outputs.VERSION_MATCH == 'false' }}
# - name: Install dependencies on Ubuntu
# if: matrix.os == 'ubuntu-latest'
# run: sudo apt-get update && sudo apt-get install libsdl-pango-dev
# - name: Install dependencies on macOS
# if: matrix.os == 'macos-latest'
# run: brew install pkg-config cairo pango libpng jpeg giflib
- name: Install dependencies
run: yarn install
if: ${{ needs.version_checker.outputs.VERSION_MATCH == 'false' }}
- name: Lint files
run: |
yarn lint
yarn type-check
if: ${{ needs.version_checker.outputs.VERSION_MATCH == 'false' }}
- name: Build and Publish Electron App
run: |
yarn icons
yarn build
if: ${{ needs.version_checker.outputs.VERSION_MATCH == 'false' }}
env:
GITHUB_TOKEN: ${{ github.token }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
- name: Upload artifacts
if: ${{ needs.version_checker.outputs.VERSION_MATCH == 'false' }}
uses: actions/upload-artifact@v4
with:
name: M³ test build for ${{ matrix.os == 'macos-13' && 'Intel-based MacOS' || matrix.os == 'macos-latest' && 'M-series (Apple Silicon) MacOS' || matrix.os == 'windows-latest' && 'Windows' || 'Linux' }}
path: |
dist/electron/Packaged/*.exe
dist/electron/Packaged/*.dmg
dist/electron/Packaged/*.zip
dist/electron/Packaged/*.AppImage
dist/electron/Packaged/*/*/Contents/Info.plist