Skip to content

Build Linux App (.deb) #10

Build Linux App (.deb)

Build Linux App (.deb) #10

Workflow file for this run

name: Build Desktop App (Linux)
on:
# push:
# branches:
# - master
# pull_request:
# branches:
# - master
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
- name: Install development dependencies
run: sudo apt-get install -y build-essential libgtk-3-dev libjavascriptcoregtk-4.1-dev libsoup-3.0-dev libwebkit2gtk-4.1-dev libxdo-dev
- name: Install Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest
- name: Install Bun dependencies
run: bun install --frozen-lockfile
- name: Generate TailwindCSS
run: bun build:tailwind
- name: Install Dioxus CLI
run: cargo install dioxus-cli
- name: Create .env file
env:
API_URL: ${{ secrets.API_URL }}
SUPABASE_URL: ${{ secrets.SUPABASE_URL }}
SUPABASE_API_KEY: ${{ secrets.SUPABASE_API_KEY }}
SUPABASE_JWT_SECRET: ${{ secrets.SUPABASE_JWT_SECRET }}
DATABASE_URL: ${{ secrets.DATABASE_URL }}
run: printf "API_URL=$API_URL\nSUPABASE_URL=$SUPABASE_URL\nSUPABASE_API_KEY=$SUPABASE_API_KEY\nSUPABASE_JWT_SECRET=$SUPABASE_JWT_SECRET\nDATABASE_URL=$DATABASE_URL\n" > .env
- name: Copy icons
run: |
mkdir -p dist/resources
cp icons/32x32.png dist/resources/32x32.png
cp icons/128x128.png dist/resources/128x128.png
cp icons/[email protected] dist/resources/[email protected]
- name: Build
run: mv Cargo.toml Cargo.toml.bak && cp Cargo.desktop.toml Cargo.toml && WEBKIT_DISABLE_COMPOSITING_MODE=1 dx bundle --platform desktop --release --package deb
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: linux
path: dist/bundle/appimage/**/*