Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
Commitcbd9d9dunknown_key

Merge pull request #24 from ccantynz-alt/claude/build-status-update-3MXsf

Merge pull request #24 from ccantynz-alt/claude/build-status-update-3MXsf

Claude/build status update 3 m xsf
Dictation App committed on April 22, 2026Parents: b299bc0 366179e
2 files changed+791cbd9d9d7ce6f037f9c50ea844db2077e76570a9d
2 changed files+79−1
Added.github/workflows/fly-deploy.yml+78−0View fileUnifiedSplit
1name: Fly Deploy
2
3on:
4 push:
5 branches:
6 - main
7 - claude/build-status-update-3MXsf
8 workflow_dispatch: {}
9
10concurrency:
11 group: fly-deploy-${{ github.ref }}
12 cancel-in-progress: false
13
14jobs:
15 deploy:
16 name: Deploy to Fly.io
17 runs-on: ubuntu-latest
18 steps:
19 - uses: actions/checkout@v4
20
21 - name: Set up flyctl
22 uses: superfly/flyctl-actions/setup-flyctl@master
23
24 - name: Ensure app exists
25 run: |
26 if ! flyctl apps list --json 2>/dev/null | grep -q '"Name":\s*"gluecron"'; then
27 echo "Creating Fly app 'gluecron'..."
28 flyctl apps create gluecron --org personal
29 else
30 echo "App 'gluecron' already exists."
31 fi
32 env:
33 FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
34
35 - name: Ensure volume exists
36 run: |
37 if ! flyctl volumes list -a gluecron --json 2>/dev/null | grep -q '"Name":\s*"gluecron_repos"'; then
38 echo "Creating volume 'gluecron_repos' in iad..."
39 flyctl volumes create gluecron_repos --app gluecron --size 3 --region iad --yes
40 else
41 echo "Volume 'gluecron_repos' already exists."
42 fi
43 env:
44 FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
45
46 - name: Sync application secrets to Fly
47 run: |
48 flyctl secrets set --app gluecron --stage \
49 DATABASE_URL="$DATABASE_URL" \
50 APP_BASE_URL="$APP_BASE_URL" \
51 DEMO_SEED_ON_BOOT="$DEMO_SEED_ON_BOOT" \
52 EMAIL_PROVIDER="$EMAIL_PROVIDER"
53 env:
54 FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
55 DATABASE_URL: ${{ secrets.DATABASE_URL }}
56 APP_BASE_URL: ${{ vars.APP_BASE_URL || 'https://gluecron.fly.dev' }}
57 DEMO_SEED_ON_BOOT: ${{ vars.DEMO_SEED_ON_BOOT || '1' }}
58 EMAIL_PROVIDER: ${{ vars.EMAIL_PROVIDER || 'log' }}
59
60 - name: Deploy
61 run: flyctl deploy --remote-only --app gluecron
62 env:
63 FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
64
65 - name: Smoke test
66 run: |
67 sleep 10
68 for i in 1 2 3 4 5; do
69 code=$(curl -s -o /dev/null -w "%{http_code}" https://gluecron.fly.dev/healthz || echo "000")
70 echo "Attempt $i: /healthz returned $code"
71 if [ "$code" = "200" ]; then
72 echo "Site is live."
73 exit 0
74 fi
75 sleep 10
76 done
77 echo "Site did not respond with 200 after 50s. Check 'fly logs -a gluecron'."
78 exit 1
Modifiedfly.toml+1−1View fileUnifiedSplit
11app = "gluecron"
2primary_region = "lhr"
2primary_region = "iad"
33
44[build]
55 dockerfile = "Dockerfile"
66