Conversation
WalkthroughA new GitHub Actions workflow file has been added to automate infrastructure management. It schedules two weekday jobs: one at 13:00 UTC to launch infrastructure and another at 23:00 UTC to tear it down. Both jobs run Pulumi commands within a Flox environment using secrets for authentication. Changes
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ Context from checks skipped due to timeout of 90000ms (1)
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
There was a problem hiding this comment.
Pull Request Overview
This PR introduces a new GitHub Actions workflow that automates the lifecycle management of infrastructure by scheduling launch and teardown jobs using Pulumi.
- Adds a new workflow file (.github/workflows/lifecycle.yaml) with two jobs (launch and teardown) triggered by distinct cron schedules.
- Integrates third-party actions to check out code, install necessary tooling, and execute infrastructure commands.
Comments suppressed due to low confidence (1)
.github/workflows/lifecycle.yaml:25
- The command 'nu ping.nu' is unclear in purpose. Please add a comment explaining its role in the workflow to improve clarity.
nu ping.nu
Graphite Automations"Assign author to pull request" took an action on this PR • (06/10/25)1 assignee was added to this PR based on John Forstmeier's automation. |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (3)
.github/workflows/lifecycle.yaml (3)
3-6: Add manual trigger and clarify timezone in schedule
Theon.scheduleblock only fires on two cron events, and the comments reference “EST” which shifts to EDT in summer. Consider:
- Adding a
workflow_dispatchtrigger for ad-hoc runs.- Clarifying/removing local time comments or noting “Eastern Time (UTC-5/UTC-4)” to avoid confusion.
8-11: Verify GitHub environment and protect secrets
Both jobs useenvironment: pulumito surface credentials (e.g. AWS keys) and enforce approvals. Ensure thepulumienvironment exists in repo settings with all required secrets (PULUMI_ACCESS_TOKEN, cloud-provider creds) and any protection rules. Also consider adding:
- A
concurrencykey to prevent overlapping deploy/teardown runs.- A branch filter (e.g.
branches: [main]) if you only want this on your default branch.Also applies to: 27-29
19-25: Refactor steps for maintainability and consistency
- Use the step-level
working-directoryattribute instead ofcd.- Verify that
flox/activate-action@v1acceptscommand(or if it should bescript).- Ensure
nu ping.nuruns inside the Flox environment (e.g. prefix withuv run nu).- Explicitly pass
--stackor setPULUMI_STACKif you manage multiple stacks.Example diff:
- - name: Deploy with Pulumi - uses: flox/activate-action@v1 - env: - PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }} - with: - command: | - cd infrastructure - uv run pulumi up --yes - nu ping.nu + - name: Deploy with Pulumi + uses: flox/activate-action@v1 + working-directory: infrastructure + env: + PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }} + with: + command: | + pulumi up --yes --stack ${{ secrets.PULUMI_STACK }} + uv run nu ping.nuRepeat the same refactor for the teardown job.
Also applies to: 37-42
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/lifecycle.yaml(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Run Python tests
chrisaddy
left a comment
There was a problem hiding this comment.
I would make this like 8am just to be safe? otherwise I think this is good
588fee9 to
f8682ed
Compare
|
@chrisaddy I adjusted the window and this is good for another review (the Copilot feedback was incorrect according to GitHub docs). |

Overview
Changes
Comments
Not sure if we want this right just now but it should be something we include soon. We'll also want to monitor costs but IDK what that looks like currently.
Summary by CodeRabbit