Skip to content

fly automation of the web app - #928

Merged
michaelneale merged 3 commits into
mainfrom
micn/fly-deploy-automation
Jun 30, 2026
Merged

fly automation of the web app#928
michaelneale merged 3 commits into
mainfrom
micn/fly-deploy-automation

Conversation

@michaelneale

@michaelneale michaelneale commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator

housekeeping

Summary by CodeRabbit

  • Chores

    • Added a manual GitHub Actions workflow to deploy the Fly console application (runs only on demand).
    • Supports deploying a specific revision, uses standardized deployment settings, and deploys to the console environment using the configured FLY_API_TOKEN secret (no pull request triggers).
  • Documentation

    • Updated CI/deployment documentation to document the new manual deployment lane.
    • Expanded Fly Console README with step-by-step setup for the manual workflow (including FLY_API_TOKEN) and clarified local deployment requirements (including fly auth login).

@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 79a9ab1a-f8fa-4ffc-9a7f-35b787d076c0

📥 Commits

Reviewing files that changed from the base of the PR and between 79b628e and f434864.

📒 Files selected for processing (2)
  • fly/DOMAIN_CUTOVER.md
  • fly/Dockerfile
💤 Files with no reviewable changes (1)
  • fly/DOMAIN_CUTOVER.md

📝 Walkthrough

Walkthrough

Adds a manual GitHub Actions workflow for deploying mesh-llm-console, updates CI and Fly README docs for that path, and extends the Fly Dockerfile build context with additional Rust crate sources.

Changes

Fly Console Deployment Workflow

Layer / File(s) Summary
Manual deploy workflow
.github/workflows/fly-deploy-console.yml
Adds workflow_dispatch with optional ref, read-only contents permission, fixed concurrency, and a flyctl deploy --remote-only job using fly/console/fly.toml and fly/Dockerfile.
Deployment docs updates
ci/ci.md, fly/README.md
Adds CI graph and workflow documentation for fly-deploy-console.yml, plus README instructions for running the GitHub Action and logging in before local deploys.
Fly Dockerfile inputs
fly/Dockerfile
Adds COPY steps for crates/skippy-quantize, crates/llama-quant-ffi, and crates/mesh-llm-build-info in the builder stage.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • Mesh-LLM/mesh-llm#821: This PR touches fly/DOMAIN_CUTOVER.md, which is deleted in the current change set.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title is related to Fly deployment work, but it is too vague to convey the specific manual console deploy workflow and docs changes. Rename it to something more specific, such as "Add manual Fly deploy workflow for the console app".
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch micn/fly-deploy-automation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (3)
.github/workflows/fly-deploy-console.yml (3)

33-36: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Add persist-credentials: false to checkout step.

The workflow does not perform any git operations after checkout, so credential persistence is unnecessary. Leaving it enabled exposes the GitHub token to later steps and increases attack surface if a compromised action or exfiltration technique is introduced later. The zizmor static analyzer flagged this at lines 33-36.

       - name: Check out repository
         uses: actions/checkout@v4
         with:
+          persist-credentials: false
           ref: ${{ inputs.ref || github.ref }}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/fly-deploy-console.yml around lines 33 - 36, The checkout
step in the workflow currently leaves GitHub credentials persisted
unnecessarily; update the actions/checkout usage in the repository checkout step
to disable credential persistence by adding persist-credentials: false. Keep the
change scoped to the checkout step identified by actions/checkout@v4 so later
steps cannot reuse the token.

Source: Linters/SAST tools


27-32: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Add timeout-minutes to the deploy job.

flyctl deploy can hang on network issues or remote builder problems. Without a timeout, a stuck deploy will hold the fly-deploy-console concurrency slot until GitHub's 6-hour default limit, blocking subsequent manual deploys and wasting runner minutes.

   deploy:
     name: Deploy console to Fly
     runs-on: ubuntu-24.04
     environment: fly-console
+    timeout-minutes: 10
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/fly-deploy-console.yml around lines 27 - 32, The deploy
job in the fly-console workflow can hang indefinitely during flyctl deploy, so
add a job-level timeout to the deploy job definition to prevent the
fly-deploy-console concurrency slot from being blocked for hours. Update the
deploy job in the workflow alongside the existing jobs.deploy configuration,
keeping the timeout on the same job that runs the Fly deployment steps.

38-39: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Pin the flyctl setup action to a specific version or SHA.

Using @master for a third-party action means the workflow automatically consumes the latest mutable state, which can introduce breaking changes or compromise if the upstream repository is attacked. Pin to a released tag or immutable SHA for supply-chain security.

       - name: Set up flyctl
-        uses: superfly/flyctl-actions/setup-flyctl@master
+        uses: superfly/flyctl-actions/setup-flyctl@1.5
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/fly-deploy-console.yml around lines 38 - 39, The flyctl
setup step is using a mutable third-party action reference, which should be
pinned for supply-chain safety. Update the action reference in the “Set up
flyctl” step from the current `superfly/flyctl-actions/setup-flyctl` target to a
specific released version tag or immutable SHA, keeping the workflow behavior
stable and reviewable. Use the existing setup step in the workflow as the
location to make this change.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In @.github/workflows/fly-deploy-console.yml:
- Around line 33-36: The checkout step in the workflow currently leaves GitHub
credentials persisted unnecessarily; update the actions/checkout usage in the
repository checkout step to disable credential persistence by adding
persist-credentials: false. Keep the change scoped to the checkout step
identified by actions/checkout@v4 so later steps cannot reuse the token.
- Around line 27-32: The deploy job in the fly-console workflow can hang
indefinitely during flyctl deploy, so add a job-level timeout to the deploy job
definition to prevent the fly-deploy-console concurrency slot from being blocked
for hours. Update the deploy job in the workflow alongside the existing
jobs.deploy configuration, keeping the timeout on the same job that runs the Fly
deployment steps.
- Around line 38-39: The flyctl setup step is using a mutable third-party action
reference, which should be pinned for supply-chain safety. Update the action
reference in the “Set up flyctl” step from the current
`superfly/flyctl-actions/setup-flyctl` target to a specific released version tag
or immutable SHA, keeping the workflow behavior stable and reviewable. Use the
existing setup step in the workflow as the location to make this change.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 7dd53ce1-1a6f-4119-84c6-43f8c501c7bb

📥 Commits

Reviewing files that changed from the base of the PR and between 100f548 and 964a83e.

📒 Files selected for processing (1)
  • .github/workflows/fly-deploy-console.yml

@ndizazzo ndizazzo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

excellent, thank you! 🙏🏻

@michaelneale
michaelneale merged commit 6378b9a into main Jun 30, 2026
21 checks passed
@michaelneale
michaelneale deleted the micn/fly-deploy-automation branch June 30, 2026 04:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants