Skip to content

Adjust icons

Adjust icons #23

Workflow file for this run

name: publish
on:
workflow_dispatch:
push:
branches:
- release
jobs:
build:
permissions:
contents: read
strategy:
fail-fast: false
matrix:
include:
- id: macos-aarch64
platform: macos-latest
args: --target aarch64-apple-darwin
- id: linux
platform: ubuntu-22.04
args: ""
- id: windows
platform: windows-latest
args: ""
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Linux system dependencies
if: ${{ matrix.platform == 'ubuntu-22.04' }}
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: yarn
- name: Enable Corepack
run: corepack enable
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: ./src-tauri -> target
- name: Install frontend dependencies
run: yarn install --immutable
- name: Build app
run: yarn tauri build ${{ matrix.args }}
- name: Upload macOS bundles
if: ${{ matrix.platform == 'macos-latest' }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.id }}
path: |
src-tauri/target/**/release/bundle/dmg/*.dmg
if-no-files-found: warn
- name: Upload Linux bundles
if: ${{ matrix.platform == 'ubuntu-22.04' }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.id }}
path: |
src-tauri/target/**/release/bundle/appimage/*.AppImage
src-tauri/target/**/release/bundle/deb/*.deb
src-tauri/target/**/release/bundle/rpm/*.rpm
if-no-files-found: warn
- name: Upload Windows bundles
if: ${{ matrix.platform == 'windows-latest' }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.id }}
path: |
src-tauri/target/**/release/spcd3.exe
src-tauri/target/**/release/bundle/msi/*.msi
src-tauri/target/**/release/bundle/nsis/*.exe
if-no-files-found: warn
release:
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download all build artifacts
uses: actions/download-artifact@v4
with:
path: release-assets
- name: Show collected files
run: find release-assets -type f | sort
- name: Sort files into OS folders
run: |
mkdir -p \
release-assets/by-os/macos \
release-assets/by-os/linux \
release-assets/by-os/windows
find release-assets/macos-aarch64 -type f \( -name '*.dmg' \) -exec cp {} release-assets/by-os/macos/ \;
find release-assets/linux -type f \( -name '*.AppImage' -o -name '*.deb' -o -name '*.rpm' \) -exec cp {} release-assets/by-os/linux/ \;
find release-assets/windows -type f \( -name '*.msi' -o -name '*.exe' \) -exec cp {} release-assets/by-os/windows/ \;
- name: Show sorted files
run: find release-assets/by-os -type f | sort
- name: Create per-OS archives
run: |
cd release-assets/by-os
zip -r ../spcd3-macos.zip macos
zip -r ../spcd3-linux.zip linux
zip -r ../spcd3-windows.zip windows
- name: Create or update draft release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
VERSION=$(node -p "require('./package.json').version")
TAG="app-v$VERSION"
TITLE="App v$VERSION"
if gh release view "$TAG" >/dev/null 2>&1; then
gh release edit "$TAG" \
--title "$TITLE" \
--notes "See the assets to download this version and install." \
--draft=true
else
gh release create "$TAG" \
--title "$TITLE" \
--notes "See the assets to download this version and install." \
--draft
fi
- name: Upload all assets to the draft release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
VERSION=$(node -p "require('./package.json').version")
TAG="app-v$VERSION"
find release-assets -maxdepth 1 -type f -name 'spcd3-*.zip' -print0 | xargs -0 gh release upload "$TAG" --clobber