Skip to content

Automate production deployments - #6304

Open
fatadel wants to merge 1 commit into
firefox-devtools:mainfrom
fatadel:issue-5995
Open

fatadel wants to merge 1 commit into
firefox-devtools:mainfrom
fatadel:issue-5995

Conversation

@fatadel

@fatadel fatadel commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

Main | Deploy preview

Replace the first 4 steps of the deployment workflow with an automated interactive local script. It coordinates the l10n, CLI version, and production pull requests while preserving approvals, checks, and intended merge methods. Every step requires explicit confirmation.

This script was successfully tested during the October 13 deployment.

The 5th step will be handled as a follow-up.

Closes #5995

@codecov

codecov Bot commented Sep 4, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 84.78%. Comparing base (7269a79) to head (c584118).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff            @@
##             main    #6304    +/-   ##
========================================
  Coverage   84.78%   84.78%            
========================================
  Files         358      358            
  Lines       38946    38946            
  Branches    10917    11019   +102     
========================================
  Hits        33022    33022            
  Misses       5488     5488            
  Partials      436      436            

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@fatadel
fatadel force-pushed the issue-5995 branch 2 times, most recently from 7f08cc0 to 3f3576e Compare October 14, 2026 13:16
@fatadel
fatadel marked this pull request as ready for review October 14, 2026 13:30
@fatadel
fatadel requested a review from canova as a code owner October 14, 2026 13:30
@fatadel
fatadel requested a review from mstange October 14, 2026 13:30

@canova canova left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks, adding drive by comments but will review a bit more carefully soon.

Comment thread bin/deploy-prod.mjs Outdated
Comment thread bin/deploy-prod-e2e.test.mjs Outdated

@canova canova left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for working on automating the deploymet! It's going to improve our lives a lot.

I think it would be great to add a --dry-run flag that prints each action that would change anything in GitHub or npm instead of really doing it. That would allow me or anyone to also test locally without having to worry about doing these. I was a bit scared to run it right now since I don't know what it would change. Could you add that?

Comment thread bin/deploy-prod.mjs Outdated
Comment thread bin/deploy-prod.mjs Outdated
Comment thread bin/deploy-prod.mjs Outdated
Comment thread bin/deploy-prod.mjs Outdated
Comment thread bin/deploy-prod.mjs Outdated
Comment thread bin/deploy-prod.mjs Outdated
Comment thread bin/deploy-prod.mjs Outdated
}
}

async function mergePullRequest(

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Does this handle merge queues?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes, but for the happy path only for now.

Comment thread bin/deploy-prod.mjs Outdated
Comment thread bin/deploy-prod.mjs Outdated
Comment thread bin/deploy-prod.mjs Outdated
@canova

canova commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

Ah, btw not for this PR but I thought it would be a nice improvement for later: there is a new terminal protocol getting popular (that only a few terminals implemented so far) to tell the status of the program: https://mitchellh.com/writing/program-status-osc7501
Currently only ghostty (unreleased version), rex (ghostty's new terminal), kitty (unreleased version), and iTerm2 etc. support. But looks like more terminals will start supporting in the future, it's especially useful for agents. It's a good way for an application to say "I'm waiting for an action"/ "I'm blocked", "I'm working", "I'm done" etc.

This is the doc of that OSC sequence: https://www.superlogical.com/rex/docs/build/program-status

Replace the manual first four release steps with an interactive local
workflow. It discovers remotes, coordinates reviewed pull requests,
generates production notes, and publishes the CLI after deployment.
Per-action confirmations and dry-run mode make shared-state changes
explicit before they happen.
@fatadel

fatadel commented Oct 26, 2026

Copy link
Copy Markdown
Contributor Author

Thanks a lot for the very thorough review, @canova! I've now addressed all the comments you left, including adding the dry-run mode. Also, I re-wrote the whole thing in ts as it made things easier. That should not be a problem as we use node 24.

@fatadel
fatadel requested a review from canova October 26, 2026 12:35
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.

Automate deploy to production

2 participants