Files
Gitea-Desktop/.gitea/workflows/build.yml
SirBlob 74f8c78700
Some checks failed
Build and Release / Build Windows (push) Has been cancelled
Build and Release / Build Linux (push) Has been cancelled
Build and Release / Build macOS (push) Has been cancelled
Build and Release / Create Release (push) Has been cancelled
Build and Release / Development Build (push) Has been cancelled
README.md UPDATE
2025-11-07 17:52:25 -05:00

195 lines
4.9 KiB
YAML

name: Build and Release
on:
push:
branches:
- main
tags:
- 'v*'
pull_request:
branches:
- main
env:
CARGO_TERM_COLOR: always
jobs:
build-windows:
name: Build Windows
runs-on: windows-latest
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Setup Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
- name: Build Tauri app
run: bun tauri build
- name: Upload Windows artifacts
uses: actions/upload-artifact@v4
with:
name: windows-artifacts
path: |
src-tauri/target/release/bundle/msi/*.msi
src-tauri/target/release/bundle/nsis/*.exe
build-linux:
name: Build Linux
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Setup Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libxdo-dev \
libssl-dev \
libayatana-appindicator3-dev \
librsvg2-dev
- name: Build Tauri app
run: bun tauri build
- name: Upload Linux artifacts
uses: actions/upload-artifact@v4
with:
name: linux-artifacts
path: |
src-tauri/target/release/bundle/deb/*.deb
src-tauri/target/release/bundle/appimage/*.AppImage
build-macos:
name: Build macOS
runs-on: macos-latest
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Setup Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
target: aarch64-apple-darwin,x86_64-apple-darwin
- name: Build Tauri app (Universal)
run: bun tauri build --target universal-apple-darwin
- name: Upload macOS artifacts
uses: actions/upload-artifact@v4
with:
name: macos-artifacts
path: |
src-tauri/target/universal-apple-darwin/release/bundle/dmg/*.dmg
src-tauri/target/universal-apple-darwin/release/bundle/macos/*.app
release:
name: Create Release
runs-on: ubuntu-latest
needs: [build-windows, build-linux, build-macos]
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Get version from tag
id: get_version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Create Release
uses: softprops/action-gh-release@v2
with:
name: Release v${{ steps.get_version.outputs.VERSION }}
body: |
## Downloads
- **Windows**: `.msi` or `.exe` installer
- **Linux**: `.deb` or `.AppImage`
- **macOS**: `.dmg` or `.app`
## Installation
Download the appropriate file for your platform and install it.
files: |
artifacts/windows-artifacts/**/*
artifacts/linux-artifacts/**/*
artifacts/macos-artifacts/**/*
draft: false
prerelease: false
token: ${{ secrets.GITHUB_TOKEN }}
dev-build:
name: Development Build
runs-on: windows-latest
if: github.ref == 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Setup Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
- name: Build Tauri app (debug)
run: bun tauri build --debug
- name: Upload dev build
uses: actions/upload-artifact@v4
with:
name: dev-build-windows
path: src-tauri/target/debug/bundle/**/*
retention-days: 7