Skip to content

Commit f1a3270

Browse files
abs2023cursoragent
andcommitted
ci(dev): publish vX.Y.Z-dev pre-releases like test branch
Restore standard SERVICE_PROXY_DOWNLOAD_URL_* for dev UI builds and add Dev-UI-Release to upload desktop, CLI, and proxy-router assets to GitHub pre-releases (no GHCR/TEE/AWS). Updates latest-dev tag for rolling installs. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent de675d8 commit f1a3270

1 file changed

Lines changed: 117 additions & 8 deletions

File tree

.github/workflows/build.yml

Lines changed: 117 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ name: CI-CD
33
#
44
# Branch Strategy:
55
# • dev: Build-only (TEMPORARY): verify, tag, proxy-router docker test, CLI/router executables,
6-
# and UI desktop artifacts uploaded to the workflow run — no GHCR push, TEE, release, or deploy.
7-
# Revert dev push builds after test→main promotion is unblocked.
6+
# UI desktop builds, and GitHub pre-release (vX.Y.Z-dev) with router/CLI/UI assets — no GHCR,
7+
# TEE, AWS, or SecretVM deploy. Revert after test→main promotion is unblocked.
88
# • test: Build, test, and deploy to AWS DEV environment (Titan dev + Morpheus dev consumer node)
99
# • main: Build, test, create release, and deploy to AWS PRD environment (Titan lmn + Morpheus prd consumer/provider nodes)
1010
#
@@ -2209,8 +2209,7 @@ jobs:
22092209
- Generate-Tag
22102210
- Build-Service-Executables
22112211
env:
2212-
# Dev builds have no GitHub release; omit router download URL (test router from workflow artifacts).
2213-
SERVICE_PROXY_DOWNLOAD_URL_MAC_ARM64: ${{ github.ref != 'refs/heads/dev' && format('{0}/mac-arm64-morpheus-router-{1}', needs.Generate-Tag.outputs.artifacts_base_url, needs.Generate-Tag.outputs.vfull) || '' }}
2212+
SERVICE_PROXY_DOWNLOAD_URL_MAC_ARM64: ${{ needs.Generate-Tag.outputs.artifacts_base_url }}/mac-arm64-morpheus-router-${{ needs.Generate-Tag.outputs.vfull }}
22142213
steps:
22152214
- name: Clone
22162215
id: checkout
@@ -2274,7 +2273,7 @@ jobs:
22742273
- Generate-Tag
22752274
- Build-Service-Executables
22762275
env:
2277-
SERVICE_PROXY_DOWNLOAD_URL_LINUX_X64: ${{ github.ref != 'refs/heads/dev' && format('{0}/linux-x86_64-morpheus-router-{1}', needs.Generate-Tag.outputs.artifacts_base_url, needs.Generate-Tag.outputs.vfull) || '' }}
2276+
SERVICE_PROXY_DOWNLOAD_URL_LINUX_X64: ${{ needs.Generate-Tag.outputs.artifacts_base_url }}/linux-x86_64-morpheus-router-${{ needs.Generate-Tag.outputs.vfull }}
22782277
steps:
22792278
- name: Clone
22802279
id: checkout
@@ -2337,7 +2336,7 @@ jobs:
23372336
- Generate-Tag
23382337
- Build-Service-Executables
23392338
env:
2340-
SERVICE_PROXY_DOWNLOAD_URL_LINUX_ARM64: ${{ github.ref != 'refs/heads/dev' && format('{0}/linux-arm64-morpheus-router-{1}', needs.Generate-Tag.outputs.artifacts_base_url, needs.Generate-Tag.outputs.vfull) || '' }}
2339+
SERVICE_PROXY_DOWNLOAD_URL_LINUX_ARM64: ${{ needs.Generate-Tag.outputs.artifacts_base_url }}/linux-arm64-morpheus-router-${{ needs.Generate-Tag.outputs.vfull }}
23412340
steps:
23422341
- name: Clone
23432342
id: checkout
@@ -2400,7 +2399,7 @@ jobs:
24002399
- Generate-Tag
24012400
- Build-Service-Executables
24022401
env:
2403-
SERVICE_PROXY_DOWNLOAD_URL_MAC_X64: ${{ github.ref != 'refs/heads/dev' && format('{0}/mac-x64-morpheus-router-{1}', needs.Generate-Tag.outputs.artifacts_base_url, needs.Generate-Tag.outputs.vfull) || '' }}
2402+
SERVICE_PROXY_DOWNLOAD_URL_MAC_X64: ${{ needs.Generate-Tag.outputs.artifacts_base_url }}/mac-x64-morpheus-router-${{ needs.Generate-Tag.outputs.vfull }}
24042403
steps:
24052404
- name: Clone
24062405
id: checkout
@@ -2464,7 +2463,7 @@ jobs:
24642463
- Generate-Tag
24652464
- Build-Service-Executables
24662465
env:
2467-
SERVICE_PROXY_DOWNLOAD_URL_WINDOWS_X64: ${{ github.ref != 'refs/heads/dev' && format('{0}/win-x64-morpheus-router-{1}.exe', needs.Generate-Tag.outputs.artifacts_base_url, needs.Generate-Tag.outputs.vfull) || '' }}
2466+
SERVICE_PROXY_DOWNLOAD_URL_WINDOWS_X64: ${{ needs.Generate-Tag.outputs.artifacts_base_url }}/win-x64-morpheus-router-${{ needs.Generate-Tag.outputs.vfull }}.exe
24682467
steps:
24692468
- name: Clone
24702469
id: checkout
@@ -2536,6 +2535,116 @@ jobs:
25362535
path: ./ui-desktop/dist/win-x64-morpheus-app-${{ needs.Generate-Tag.outputs.vfull }}.exe
25372536
name: win-x64-morpheus-app-${{ needs.Generate-Tag.outputs.vfull }}.exe
25382537

2538+
Dev-UI-Release:
2539+
name: Upload Dev Pre-release (desktop + CLI + router)
2540+
if: |
2541+
github.repository == 'MorpheusAIs/Morpheus-Lumerin-Node' &&
2542+
github.event_name == 'push' &&
2543+
github.ref == 'refs/heads/dev'
2544+
needs:
2545+
- Generate-Tag
2546+
- Build-Service-Executables
2547+
- UI-macOS-latest-arm64
2548+
- UI-macOS-15-intel-x64
2549+
- UI-Ubuntu-22-x64
2550+
- UI-Ubuntu-22-arm64
2551+
- UI-Windows-avx2-x64
2552+
runs-on: ubuntu-latest
2553+
permissions:
2554+
contents: write
2555+
steps:
2556+
- name: Clone
2557+
uses: actions/checkout@v6
2558+
with:
2559+
fetch-depth: 0
2560+
fetch-tags: true
2561+
2562+
- name: Download artifacts
2563+
uses: actions/download-artifact@v7
2564+
with:
2565+
path: ./artifact
2566+
merge-multiple: true
2567+
2568+
- name: Verify artifact contents
2569+
run: |
2570+
echo "🔍 Contents of ./artifact:"
2571+
ls -lh ./artifact
2572+
2573+
- name: Generate release notes
2574+
run: |
2575+
VERSION=${{ needs.Generate-Tag.outputs.vfull }}
2576+
TAG=${{ needs.Generate-Tag.outputs.tag_name }}
2577+
2578+
cat << RELEASE_NOTES > release_notes.md
2579+
## Dev pre-release ($TAG)
2580+
2581+
Desktop, proxy-router, and CLI builds from the \`dev\` branch. No container or TEE assets in this release.
2582+
2583+
### Desktop Application
2584+
2585+
| Platform | Download |
2586+
|----------|----------|
2587+
| **Windows** (x64) | [\`win-x64-morpheus-app-${VERSION}.exe\`](../../releases/download/${TAG}/win-x64-morpheus-app-${VERSION}.exe) |
2588+
| **macOS** (Apple Silicon) | [\`mac-arm64-morpheus-app-${VERSION}.dmg\`](../../releases/download/${TAG}/mac-arm64-morpheus-app-${VERSION}.dmg) |
2589+
| **macOS** (Intel) | [\`mac-x64-morpheus-app-${VERSION}.dmg\`](../../releases/download/${TAG}/mac-x64-morpheus-app-${VERSION}.dmg) |
2590+
| **Linux** (x64) | [\`linux-x86_64-morpheus-app-${VERSION}.AppImage\`](../../releases/download/${TAG}/linux-x86_64-morpheus-app-${VERSION}.AppImage) |
2591+
| **Linux** (ARM64) | [\`linux-arm64-morpheus-app-${VERSION}.AppImage\`](../../releases/download/${TAG}/linux-arm64-morpheus-app-${VERSION}.AppImage) |
2592+
2593+
### Proxy Router
2594+
2595+
| Platform | Download |
2596+
|----------|----------|
2597+
| **Linux** (x64) | [\`linux-x86_64-morpheus-router-${VERSION}\`](../../releases/download/${TAG}/linux-x86_64-morpheus-router-${VERSION}) |
2598+
| **Linux** (ARM64) | [\`linux-arm64-morpheus-router-${VERSION}\`](../../releases/download/${TAG}/linux-arm64-morpheus-router-${VERSION}) |
2599+
| **macOS** (Apple Silicon) | [\`mac-arm64-morpheus-router-${VERSION}\`](../../releases/download/${TAG}/mac-arm64-morpheus-router-${VERSION}) |
2600+
| **macOS** (Intel) | [\`mac-x64-morpheus-router-${VERSION}\`](../../releases/download/${TAG}/mac-x64-morpheus-router-${VERSION}) |
2601+
| **Windows** (x64) | [\`win-x64-morpheus-router-${VERSION}.exe\`](../../releases/download/${TAG}/win-x64-morpheus-router-${VERSION}.exe) |
2602+
2603+
### CLI
2604+
2605+
| Platform | Download |
2606+
|----------|----------|
2607+
| **Linux** (x64) | [\`linux-x86_64-morpheus-cli-${VERSION}\`](../../releases/download/${TAG}/linux-x86_64-morpheus-cli-${VERSION}) |
2608+
| **Linux** (ARM64) | [\`linux-arm64-morpheus-cli-${VERSION}\`](../../releases/download/${TAG}/linux-arm64-morpheus-cli-${VERSION}) |
2609+
| **macOS** (Apple Silicon) | [\`mac-arm64-morpheus-cli-${VERSION}\`](../../releases/download/${TAG}/mac-arm64-morpheus-cli-${VERSION}) |
2610+
| **macOS** (Intel) | [\`mac-x64-morpheus-cli-${VERSION}\`](../../releases/download/${TAG}/mac-x64-morpheus-cli-${VERSION}) |
2611+
| **Windows** (x64) | [\`win-x64-morpheus-cli-${VERSION}.exe\`](../../releases/download/${TAG}/win-x64-morpheus-cli-${VERSION}.exe) |
2612+
2613+
> Rolling alias: \`latest-dev\` git tag tracks the newest dev pre-release.
2614+
RELEASE_NOTES
2615+
2616+
echo "" >> release_notes.md
2617+
echo "---" >> release_notes.md
2618+
echo "" >> release_notes.md
2619+
echo "## Commit" >> release_notes.md
2620+
echo "" >> release_notes.md
2621+
git log -1 --pretty=format:"%B" ${{ github.sha }} >> release_notes.md
2622+
cat release_notes.md
2623+
2624+
- name: Create dev pre-release and upload assets
2625+
env:
2626+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2627+
run: |
2628+
TAG=${{ needs.Generate-Tag.outputs.tag_name }}
2629+
echo "📦 Creating dev pre-release $TAG..."
2630+
gh release create "$TAG" \
2631+
--title "Dev pre-release $TAG" \
2632+
--notes-file release_notes.md \
2633+
--prerelease \
2634+
./artifact/*
2635+
echo "✅ Dev pre-release $TAG created with $(ls -1 ./artifact | wc -l) assets"
2636+
2637+
- name: Update latest-dev tag
2638+
env:
2639+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2640+
run: |
2641+
TAG=${{ needs.Generate-Tag.outputs.tag_name }}
2642+
echo "🔄 Updating 'latest-dev' tag to point to $TAG..."
2643+
git push origin :refs/tags/latest-dev 2>/dev/null || true
2644+
git tag -f latest-dev
2645+
git push origin latest-dev
2646+
echo "✅ 'latest-dev' tag updated"
2647+
25392648
UI-Release:
25402649
name: Upload UI-Desktop Release
25412650
if: |

0 commit comments

Comments
 (0)