Skip to content

Use new event structure #92

Use new event structure

Use new event structure #92

Workflow file for this run

name: CI
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
check:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: npm
- name: Install frontend dependencies
run: npm install
- name: Check formatting
run: npm run format:check
- name: TypeScript & Vite build
run: npm run build
build:
needs: check
strategy:
fail-fast: false
matrix:
include:
- platform: macos-latest
args: --target aarch64-apple-darwin
arch: aarch64
- platform: macos-latest
args: --target x86_64-apple-darwin
arch: x86_64
- platform: ubuntu-22.04
args: ""
arch: x86_64-linux
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: Install Linux 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: npm
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: 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: npm install
- name: Build Tauri app
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
APPLE_CERTIFICATE: ${{ github.event_name == 'push' && secrets.APPLE_CERTIFICATE || '' }}
APPLE_CERTIFICATE_PASSWORD: ${{ github.event_name == 'push' && secrets.APPLE_CERTIFICATE_PASSWORD || '' }}
APPLE_SIGNING_IDENTITY: ${{ github.event_name == 'push' && secrets.APPLE_SIGNING_IDENTITY || '' }}
APPLE_ID: ${{ github.event_name == 'push' && secrets.APPLE_ID || '' }}
APPLE_PASSWORD: ${{ github.event_name == 'push' && secrets.APPLE_PASSWORD || '' }}
APPLE_TEAM_ID: ${{ github.event_name == 'push' && secrets.APPLE_TEAM_ID || '' }}
with:
args: ${{ matrix.args }}
- name: Upload DMG artifact
if: github.event_name == 'push' && startsWith(matrix.platform, 'macos')
uses: actions/upload-artifact@v4
with:
name: dmg-${{ matrix.arch }}
path: src-tauri/target/${{ matrix.arch }}-apple-darwin/release/bundle/dmg/*.dmg
- name: Upload Linux artifacts
if: github.event_name == 'push' && matrix.platform == 'ubuntu-22.04'
uses: actions/upload-artifact@v4
with:
name: linux-${{ matrix.arch }}
path: |
src-tauri/target/release/bundle/deb/*.deb
src-tauri/target/release/bundle/rpm/*.rpm
src-tauri/target/release/bundle/appimage/*.AppImage
release:
if: github.event_name == 'push'
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Download DMG artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
pattern: dmg-*
merge-multiple: true
- name: Download Linux artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
pattern: linux-*
merge-multiple: true
- name: List artifacts
run: find artifacts -type f 2>/dev/null || echo "No artifacts found"
- name: Generate short SHA
id: sha
run: echo "short=${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
- name: Create release
uses: softprops/action-gh-release@v2
with:
tag_name: alpha-${{ steps.sha.outputs.short }}
name: alpha-${{ steps.sha.outputs.short }}
body: |
Automated build from [`${{ github.sha }}`](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}).
files: |
artifacts/**/*.dmg
artifacts/**/*.deb
artifacts/**/*.rpm
artifacts/**/*.AppImage
make_latest: true