Skip to content

changing approach

changing approach #44

Workflow file for this run

name: Release Build
on:
push:
branches:
- main
tags:
- "v*"
permissions:
contents: write
jobs:
linux:
strategy:
fail-fast: false
matrix:
include:
- system: x86_64-linux
runner: ubuntu-latest
- system: aarch64-linux
runner: ubuntu-24.04-arm
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/determinate-nix-action@v3
- uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
cache-on-failure: true
- name: Setup swap space
uses: actionhippie/swap-space@v1
with:
size: 8G
- name: Build with Tauri (in Nix shell)
run: |
nix develop .# --impure --accept-flake-config -c \
bash -c "npm install && npm run tauri build"
- name: Upload AppImage
uses: actions/upload-artifact@v4
with:
name: korppi-${{ matrix.system }}-appimage
path: src-tauri/target/release/bundle/appimage/*.AppImage
if-no-files-found: warn
- name: Upload deb
uses: actions/upload-artifact@v4
with:
name: korppi-${{ matrix.system }}-deb
path: src-tauri/target/release/bundle/deb/*.deb
if-no-files-found: warn
# ─────────────────────────────────────────────
# macOS (.dmg)
# ─────────────────────────────────────────────
macos:
strategy:
fail-fast: false
matrix:
include:
- system: aarch64-darwin
runner: macos-latest
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/determinate-nix-action@v3
- uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
cache-on-failure: true
- name: Build .dmg
run: |
nix develop .# --impure --accept-flake-config -c \
bash -c "npm install && npm run tauri build"
- name: Upload dmg
uses: actions/upload-artifact@v4
with:
name: korppi-${{ matrix.system }}-dmg
path: src-tauri/target/**/release/bundle/dmg/*.dmg
if-no-files-found: error
# ─────────────────────────────────────────────
# Windows (.exe + .msi)
# ─────────────────────────────────────────────
windows:
strategy:
fail-fast: false
matrix:
include:
- arch: x86_64
target: x86_64-pc-windows-msvc
runner: windows-latest
- arch: aarch64
target: aarch64-pc-windows-msvc
runner: windows-latest
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Install dependencies
run: npm install
- name: Build Windows binaries
run: npm run tauri build -- --target ${{ matrix.target }}
- name: Upload MSI
uses: actions/upload-artifact@v4
with:
name: korppi-windows-${{ matrix.arch }}-msi
path: src-tauri/target/**/release/bundle/msi/*.msi
if-no-files-found: warn
- name: Upload EXE
uses: actions/upload-artifact@v4
with:
name: korppi-windows-${{ matrix.arch }}-exe
path: src-tauri/target/**/release/bundle/nsis/*.exe
if-no-files-found: warn
# ─────────────────────────────────────────────
# Release
# ─────────────────────────────────────────────
release:
needs: [linux, macos, windows]
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
draft: false
generate_release_notes: true
files: |
artifacts/**/*.AppImage
artifacts/**/*.dmg
artifacts/**/*.exe
artifacts/**/*.msi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}