77 lines
2.4 KiB
YAML
77 lines
2.4 KiB
YAML
name: SCREEN-008 release candidate
|
|
on:
|
|
workflow_dispatch:
|
|
permissions:
|
|
contents: read
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- runner: macos-15-intel
|
|
target: mac
|
|
arch: x64
|
|
- runner: macos-15
|
|
target: mac
|
|
arch: arm64
|
|
- runner: windows-2025
|
|
target: win
|
|
arch: x64
|
|
- runner: windows-11-arm
|
|
target: win
|
|
arch: arm64
|
|
- runner: ubuntu-24.04
|
|
target: linux
|
|
arch: x64
|
|
- runner: ubuntu-24.04-arm
|
|
target: linux
|
|
arch: arm64
|
|
runs-on: ${{ matrix.runner }}
|
|
env:
|
|
CSC_IDENTITY_AUTO_DISCOVERY: 'false'
|
|
ELECTRON_BUILDER_COMPRESSION_LEVEL: '1'
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '24.15.0'
|
|
cache: npm
|
|
- name: Install ffmpeg on macOS
|
|
if: runner.os == 'macOS'
|
|
run: brew install ffmpeg
|
|
- name: Install ffmpeg on Linux
|
|
if: runner.os == 'Linux'
|
|
run: sudo apt-get update && sudo apt-get install -y ffmpeg xvfb
|
|
- name: Install ffmpeg on Windows
|
|
if: runner.os == 'Windows'
|
|
shell: pwsh
|
|
run: |
|
|
choco install ffmpeg -y --no-progress
|
|
"C:\ProgramData\chocolatey\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
|
- run: npm ci
|
|
- run: npx --no-install install-electron --no
|
|
- run: npm run type-check
|
|
- run: npm run lint
|
|
- run: npm run lint:css
|
|
- run: npm test
|
|
- run: npm run media:generate
|
|
- name: Package Linux archive
|
|
if: runner.os == 'Linux'
|
|
run: npm run dist -- --linux --${{ matrix.arch }} --publish never
|
|
- name: Package macOS or Windows archive
|
|
if: runner.os != 'Linux'
|
|
run: npm run dist -- --${{ matrix.target }} --${{ matrix.arch }} --publish never
|
|
- name: Test packaged application on Linux x64
|
|
if: matrix.target == 'linux' && matrix.arch == 'x64'
|
|
run: xvfb-run -a npm run smoke:packaged
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: screen-${{ matrix.target }}-${{ matrix.arch }}
|
|
path: |
|
|
release/*.zip
|
|
release/*.tar.gz
|
|
release/*.build-info.json
|
|
release/SHA256SUMS-*
|
|
if-no-files-found: error
|