Skip to content

Commit e6322e8

Browse files
timiclaude
authored andcommitted
fix: generate .env file with proper config in CI and improve DMG layout
- Generate complete .env file with all required environment variables - Read sensitive values (ENCRYPTION_KEY, TG_APP_ID, TG_APP_HASH) from secrets - Add /Applications symlink to DMG for drag-to-Install hint - Add window layout settings for better DMG appearance Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 7913052 commit e6322e8

1 file changed

Lines changed: 118 additions & 9 deletions

File tree

.github/workflows/build.yml

Lines changed: 118 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,55 @@ jobs:
102102
- name: Create .env file
103103
working-directory: ./lumis/apps/web
104104
run: |
105-
cp .env.example .env
106-
# Remove POSTGRES_URL to skip database migration in CI
107-
grep -v '^POSTGRES_URL=' .env > .env.tmp && mv .env.tmp .env
105+
cat > .env << 'EOF'
106+
ENCRYPTION_KEY=${{ secrets.ENCRYPTION_KEY }}
107+
108+
# Cloud API Configuration for Tauri Desktop App
109+
CLOUD_API_URL=https://app.uselumis.ai
110+
NEXT_PUBLIC_CLOUD_API_URL=https://app.uselumis.ai
111+
112+
# Local development URL (for Tauri mode)
113+
NEXT_PUBLIC_APP_URL=http://localhost:3415
114+
115+
LLM_BASE_URL=https://openrouter.ai/api/v1
116+
LLM_MODEL=google/gemini-3-flash-preview
117+
LLM_REASONING_MODEL=google/gemini-3-flash-preview
118+
LLM_VISION_LANGUAGE_MODEL=google/gemini-3-flash-preview
119+
LLM_IMAGE_MODEL=openai/gpt-5-image
120+
121+
LLM_EMBEDDING_MODEL=qwen/qwen3-embedding-4b
122+
LLM_EMBEDDING_BASE_URL=https://openrouter.ai/api/v1
123+
124+
TELEGRAM_MODE=pooling
125+
# Telegram App Id and Hash. Reference: https://my.telegram.org/
126+
TG_APP_ID=${{ secrets.TG_APP_ID }}
127+
TG_APP_HASH=${{ secrets.TG_APP_HASH }}
128+
129+
# Roles
130+
ROLE_DETECTION_ENABLED=1
131+
ROLE_OVERLAY_ANALYST_JOURNALIST=1
132+
ROLE_OVERLAY_COMMUNITY_MANAGER=1
133+
ROLE_OVERLAY_CUSTOMER_SUCCESS=1
134+
ROLE_OVERLAY_EXECUTIVE=1
135+
ROLE_OVERLAY_FREELANCER=1
136+
ROLE_OVERLAY_INDIE_FOUNDER=1
137+
ROLE_OVERLAY_INVESTOR_ADVISOR=1
138+
ROLE_OVERLAY_REMOTE_WORKER=1
139+
ROLE_OVERLAY_SALES_BIZDEV=1
140+
141+
CLAUDE_CODE_TMPDIR=$HOME/.cache/lumis-tmp
142+
143+
ANTHROPIC_BASE_URL=http://localhost:3415/api/ai
144+
API_TIMEOUT_MS=3000000
145+
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
146+
IS_TAURI=true
147+
148+
# iMessage Backend Mode
149+
IMESSAGE_BACKEND_MODE=sdk
150+
NEXT_PUBLIC_IMESSAGE_BACKEND_MODE=sdk
151+
152+
CLAUDE_DISABLE_URL_SAFETY_CHECK=true
153+
EOF
108154
109155
- name: Import Apple Certificate and Intermediate Certificates
110156
env:
@@ -212,9 +258,26 @@ jobs:
212258
APP_BUNDLE="./lumis/apps/web/src-tauri/target/release/bundle/macos/Lumis.app"
213259
DMG_PATH="./lumis/apps/web/src-tauri/target/release/bundle/dmg/Lumis_0.3.0_aarch64.dmg"
214260
215-
# Create DMG from the signed app bundle using hdiutil
216-
# Use UDZO (compressed) format to match Tauri behavior
217-
hdiutil create -volname "Lumis" -fs HFS+ -srcfolder "$APP_BUNDLE" -format UDZO "$DMG_PATH"
261+
# Create a temporary directory for DMG contents
262+
TEMP_DMG_DIR=$(mktemp -d)
263+
cp -R "$APP_BUNDLE" "$TEMP_DMG_DIR/"
264+
265+
# Create symlink to /Applications (shows as "Applications" folder in DMG)
266+
ln -s /Applications "$TEMP_DMG_DIR/Applications"
267+
268+
# Create DMG from the temp directory with proper layout
269+
# This creates a DMG with the app on the left and Applications folder on the right
270+
hdiutil create -volname "Lumis" \
271+
-fs HFS+ \
272+
-srcfolder "$TEMP_DMG_DIR" \
273+
-format UDZO \
274+
-layout SPUD \
275+
-window-pos 100 100 \
276+
-window-size 600 400 \
277+
"$DMG_PATH"
278+
279+
# Clean up temp directory
280+
rm -rf "$TEMP_DMG_DIR"
218281
219282
echo "✅ DMG created from signed app bundle"
220283
@@ -375,9 +438,55 @@ jobs:
375438
- name: Create .env file
376439
working-directory: ./lumis/apps/web
377440
run: |
378-
cp .env.example .env
379-
# Remove POSTGRES_URL to skip database migration in CI
380-
grep -v '^POSTGRES_URL=' .env > .env.tmp && mv .env.tmp .env
441+
cat > .env << 'EOF'
442+
ENCRYPTION_KEY=${{ secrets.ENCRYPTION_KEY }}
443+
444+
# Cloud API Configuration for Tauri Desktop App
445+
CLOUD_API_URL=https://app.uselumis.ai
446+
NEXT_PUBLIC_CLOUD_API_URL=https://app.uselumis.ai
447+
448+
# Local development URL (for Tauri mode)
449+
NEXT_PUBLIC_APP_URL=http://localhost:3415
450+
451+
LLM_BASE_URL=https://openrouter.ai/api/v1
452+
LLM_MODEL=google/gemini-3-flash-preview
453+
LLM_REASONING_MODEL=google/gemini-3-flash-preview
454+
LLM_VISION_LANGUAGE_MODEL=google/gemini-3-flash-preview
455+
LLM_IMAGE_MODEL=openai/gpt-5-image
456+
457+
LLM_EMBEDDING_MODEL=qwen/qwen3-embedding-4b
458+
LLM_EMBEDDING_BASE_URL=https://openrouter.ai/api/v1
459+
460+
TELEGRAM_MODE=pooling
461+
# Telegram App Id and Hash. Reference: https://my.telegram.org/
462+
TG_APP_ID=${{ secrets.TG_APP_ID }}
463+
TG_APP_HASH=${{ secrets.TG_APP_HASH }}
464+
465+
# Roles
466+
ROLE_DETECTION_ENABLED=1
467+
ROLE_OVERLAY_ANALYST_JOURNALIST=1
468+
ROLE_OVERLAY_COMMUNITY_MANAGER=1
469+
ROLE_OVERLAY_CUSTOMER_SUCCESS=1
470+
ROLE_OVERLAY_EXECUTIVE=1
471+
ROLE_OVERLAY_FREELANCER=1
472+
ROLE_OVERLAY_INDIE_FOUNDER=1
473+
ROLE_OVERLAY_INVESTOR_ADVISOR=1
474+
ROLE_OVERLAY_REMOTE_WORKER=1
475+
ROLE_OVERLAY_SALES_BIZDEV=1
476+
477+
CLAUDE_CODE_TMPDIR=$HOME/.cache/lumis-tmp
478+
479+
ANTHROPIC_BASE_URL=http://localhost:3415/api/ai
480+
API_TIMEOUT_MS=3000000
481+
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
482+
IS_TAURI=true
483+
484+
# iMessage Backend Mode
485+
IMESSAGE_BACKEND_MODE=sdk
486+
NEXT_PUBLIC_IMESSAGE_BACKEND_MODE=sdk
487+
488+
CLAUDE_DISABLE_URL_SAFETY_CHECK=true
489+
EOF
381490
382491
- name: Install Linux build dependencies
383492
run: |

0 commit comments

Comments
 (0)