Skip to content

ci(appimage): add manual workflow to build a test AppImage#37

Merged
InstaZDLL merged 1 commit into
mainfrom
ci-test-appimage-workflow
May 17, 2026
Merged

ci(appimage): add manual workflow to build a test AppImage#37
InstaZDLL merged 1 commit into
mainfrom
ci-test-appimage-workflow

Conversation

@InstaZDLL
Copy link
Copy Markdown
Owner

Summary

Adds a workflow_dispatch-only workflow that mirrors the Linux portion of release.yml (ubuntu-latest, same apt deps, same Rust/Bun toolchain) but skips signing and publication. Lets us download a CI-built AppImage from any branch for local validation.

Why

We can't workflow_dispatch a workflow that doesn't exist on the default branch. Merging this small PR unblocks dispatching the workflow on feature branches — needed right now to validate the Linux fixes in #36 against the same environment that ships official releases (Ubuntu 24 CI runner vs local Ubuntu 22 produced very different AppImages).

Test plan

  • After merge, go to Actions → "Test AppImage build" → "Run workflow" → pick a branch → download the artifact from the run summary

Mirrors the Linux portion of release.yml (ubuntu-latest, same apt
deps, same Rust/Bun toolchain) without the signing + publication
steps. Lets contributors download a CI-built AppImage from any
branch via workflow_dispatch to validate Linux fixes against the
same environment that ships official releases.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 17, 2026

Warning

Rate limit exceeded

@InstaZDLL has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 58 minutes and 26 seconds before requesting another review.

To continue reviewing without waiting, purchase usage credits in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 703d5c82-e1c3-4d72-8daa-3d7fe23dad03

📥 Commits

Reviewing files that changed from the base of the PR and between cc72976 and 5389f33.

📒 Files selected for processing (1)
  • .github/workflows/test-appimage.yml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci-test-appimage-workflow

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added scope: ci CI/CD, workflows type: ci CI/CD changes size: m 50-200 lines labels May 17, 2026
Comment on lines +17 to +95
name: Build AppImage (ubuntu-latest)
runs-on: ubuntu-latest
timeout-minutes: 45

steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Install Linux system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
libjavascriptcoregtk-4.1-dev \
libsoup-3.0-dev \
build-essential \
curl \
wget \
file \
libxdo-dev \
libssl-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
libfuse2 \
libasound2-dev

- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 # stable
with:
toolchain: stable

- name: Cache Cargo build
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
with:
workspaces: src-tauri -> target
key: linux-test-appimage

- name: Setup Bun
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
with:
bun-version: latest

- name: Cache Bun dependencies
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: ~/.bun/install/cache
key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }}
restore-keys: |
bun-${{ runner.os }}-

- name: Install dependencies
run: bun install --frozen-lockfile

- name: Report runner environment
run: |
echo "OS:"
cat /etc/os-release
echo
echo "webkit2gtk:"
dpkg -l | grep -E 'webkit2gtk|javascriptcoregtk' || true
echo
echo "rustc:"
rustc --version

- name: Build AppImage
# Skip the updater (no signing secrets here) and only bundle
# the AppImage to keep the test build fast.
env:
TAURI_SIGNING_PRIVATE_KEY: ""
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ""
run: bun run tauri build --bundles appimage

- name: Upload AppImage artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: WaveFlow-AppImage-${{ github.sha }}
path: src-tauri/target/release/bundle/appimage/*.AppImage
if-no-files-found: error
retention-days: 14
@InstaZDLL InstaZDLL merged commit d8e0c0b into main May 17, 2026
13 checks passed
@InstaZDLL InstaZDLL deleted the ci-test-appimage-workflow branch May 17, 2026 18:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope: ci CI/CD, workflows size: m 50-200 lines type: ci CI/CD changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants