← back to Exo
build-app: add branch trigger from named branch
e8855959c1adc30f800bc99240be172a72338df6 · 2025-12-22 23:52:32 +0000 · Jake Hillion
As I've been working on the .dmg, it's become clear we need a way to
test changes to the app. It's too hard to reproduce the full DMG locally
to be reasonable and much more convenient to test if it's signed.
Add a feature to the build-app workflow where if you push specifically
to the `test-app` branch it'll perform a build. The version is stubbed
to `0.0.0-alpha.0`, which is about as low as it gets in semver so you'll
always update away from it automatically with Sparkle. The resulting DMG
won't be pushed to S3 but will be uploaded as a GitHub Actions artifact.
I've been using similar commits to this for a while for testing. It's
worked well and not interfered with auto updating at all.
Test plan:
- Pushed this change to `test-app`.
- Generated action at
https://github.com/exo-explore/exo/actions/runs/20447213358/job/58752909332
- Installed the DMG on a Mac. It worked as intended.
Files touched
M .github/workflows/build-app.yml
Diff
commit e8855959c1adc30f800bc99240be172a72338df6
Author: Jake Hillion <jake@hillion.co.uk>
Date: Mon Dec 22 23:52:32 2025 +0000
build-app: add branch trigger from named branch
As I've been working on the .dmg, it's become clear we need a way to
test changes to the app. It's too hard to reproduce the full DMG locally
to be reasonable and much more convenient to test if it's signed.
Add a feature to the build-app workflow where if you push specifically
to the `test-app` branch it'll perform a build. The version is stubbed
to `0.0.0-alpha.0`, which is about as low as it gets in semver so you'll
always update away from it automatically with Sparkle. The resulting DMG
won't be pushed to S3 but will be uploaded as a GitHub Actions artifact.
I've been using similar commits to this for a while for testing. It's
worked well and not interfered with auto updating at all.
Test plan:
- Pushed this change to `test-app`.
- Generated action at
https://github.com/exo-explore/exo/actions/runs/20447213358/job/58752909332
- Installed the DMG on a Mac. It worked as intended.
---
.github/workflows/build-app.yml | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/build-app.yml b/.github/workflows/build-app.yml
index fa6e3934..c5721fa9 100644
--- a/.github/workflows/build-app.yml
+++ b/.github/workflows/build-app.yml
@@ -4,6 +4,8 @@ on:
push:
tags:
- "v*"
+ branches:
+ - "test-app"
jobs:
build-macos-app:
@@ -32,15 +34,21 @@ jobs:
- name: Derive release version from tag
run: |
- VERSION="${GITHUB_REF_NAME#v}"
- if [[ "$VERSION" == *-alpha* ]]; then
+ if [[ "$GITHUB_REF_NAME" == "test-app" ]]; then
+ VERSION="0.0.0-alpha.0"
echo "IS_ALPHA=true" >> $GITHUB_ENV
else
- echo "IS_ALPHA=false" >> $GITHUB_ENV
+ VERSION="${GITHUB_REF_NAME#v}"
+ if [[ "$VERSION" == *-alpha* ]]; then
+ echo "IS_ALPHA=true" >> $GITHUB_ENV
+ else
+ echo "IS_ALPHA=false" >> $GITHUB_ENV
+ fi
fi
echo "RELEASE_VERSION=$VERSION" >> $GITHUB_ENV
- name: Ensure tag commit is on main
+ if: github.ref_type == 'tag'
run: |
git fetch origin main
# Alpha tags can be on any branch, production tags must be on main
@@ -267,7 +275,7 @@ jobs:
path: output/EXO-${{ env.RELEASE_VERSION }}.dmg
- name: Upload to S3
- if: env.SPARKLE_S3_BUCKET != ''
+ if: env.SPARKLE_S3_BUCKET != '' && github.ref_type == 'tag'
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
← 0a7fe5d9 ci: migrate build-app to github hosted runners
·
back to Exo
·
exo: enable multiprocessing support in PyInstaller bundles a24bdf76 →