[object Object]

← back to Exo

build-app: upload DMG to S3 for non-tagged builds (#1428)

5b5577bead13cb45ae4e1a5bcd7d58fac93ffbcf · 2026-02-10 15:47:49 +0000 · Jake Hillion

Non-tagged builds (test-app branch, manual dispatch) only uploaded the
DMG as a GitHub artifact, which requires authentication to download.

Added an early exit path that uploads the DMG with a commit hash suffix
(EXO-<sha>.dmg) for non-tagged builds, making it publicly accessible
via S3.

Test plan:
- CI
-
https://github.com/exo-explore/exo/actions/runs/21837274032/job/63011907978
  worked as intended

Co-authored-by: rltakashige <rl.takashige@gmail.com>

Files touched

Diff

commit 5b5577bead13cb45ae4e1a5bcd7d58fac93ffbcf
Author: Jake Hillion <jake@hillion.co.uk>
Date:   Tue Feb 10 15:47:49 2026 +0000

    build-app: upload DMG to S3 for non-tagged builds (#1428)
    
    Non-tagged builds (test-app branch, manual dispatch) only uploaded the
    DMG as a GitHub artifact, which requires authentication to download.
    
    Added an early exit path that uploads the DMG with a commit hash suffix
    (EXO-<sha>.dmg) for non-tagged builds, making it publicly accessible
    via S3.
    
    Test plan:
    - CI
    -
    https://github.com/exo-explore/exo/actions/runs/21837274032/job/63011907978
      worked as intended
    
    Co-authored-by: rltakashige <rl.takashige@gmail.com>
---
 .github/workflows/build-app.yml | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/build-app.yml b/.github/workflows/build-app.yml
index b056b5e0..d20bfc12 100644
--- a/.github/workflows/build-app.yml
+++ b/.github/workflows/build-app.yml
@@ -396,7 +396,7 @@ jobs:
           path: output/EXO-${{ env.RELEASE_VERSION }}.dmg
 
       - name: Upload to S3
-        if: env.SPARKLE_S3_BUCKET != '' && github.ref_type == 'tag'
+        if: env.SPARKLE_S3_BUCKET != ''
         env:
           AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
           AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -412,6 +412,12 @@ jobs:
             PREFIX="${PREFIX}/"
           fi
           DMG_NAME="EXO-${RELEASE_VERSION}.dmg"
+
+          if [[ "${{ github.ref_type }}" != "tag" ]]; then
+            aws s3 cp "$DMG_NAME" "s3://${SPARKLE_S3_BUCKET}/${PREFIX}EXO-${GITHUB_SHA}.dmg"
+            exit 0
+          fi
+
           aws s3 cp "$DMG_NAME" "s3://${SPARKLE_S3_BUCKET}/${PREFIX}${DMG_NAME}"
           if [[ "$IS_ALPHA" != "true" ]]; then
             aws s3 cp "$DMG_NAME" "s3://${SPARKLE_S3_BUCKET}/${PREFIX}EXO-latest.dmg"

← 8314a2aa cleaning up the todos (#1406)  ·  back to Exo  ·  dashboard: allow typing in chat input while response is gene 5a83e591 →