Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the release pipeline to run only after CI succeeds, and replaces the previous Bash-based tag creation logic with a Node.js implementation while adding a small metadata consistency test for the React 19 migration recipe codemod.
Changes:
- Switch Release workflow trigger from
pushtoworkflow_run(CI-completed) and pin checkout to the CI run’shead_sha. - Replace
scripts/tag-and-publish.shwithscripts/tag-and-publish.mjsand update the workflow to use it. - Add a Node test to keep
codemod.yaml/workflow.yaml/README aligned withpackage.jsonforreact-19-migration-recipe.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/tag-and-publish.sh | Removed legacy Bash tagging script. |
| scripts/tag-and-publish.mjs | Added Node-based tagging + changed-dirs output for publish matrix. |
| .github/workflows/release.yml | Run Release only after CI success; invoke new tag script; adjust publish gating/matrix behavior. |
| codemods/react-19-migration-recipe/scripts/metadata-tests.mjs | New metadata sync tests for the recipe codemod. |
| codemods/react-19-migration-recipe/package.json | Add test / check-types scripts so CI picks up the new tests. |
| CONTRIBUTING.md | Update release process description to reflect CI-gated release workflow. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ``` | ||
|
|
||
| When release changesets land on `main`, GitHub Actions: | ||
| When release changesets land on `main`, GitHub Actions waits for the `CI` workflow to pass and then: |
There was a problem hiding this comment.
Grammar: “GitHub Actions waits …” is subject/verb disagreement (Actions is plural). Consider changing to “GitHub Actions wait …” or rephrasing the sentence.
| When release changesets land on `main`, GitHub Actions waits for the `CI` workflow to pass and then: | |
| When release changesets land on `main`, GitHub Actions wait for the `CI` workflow to pass and then: |
| assert.match(codemodYaml, new RegExp(`name: "${packageJson.name.replaceAll("/", "\\/")}"`)); | ||
| assert.match(codemodYaml, new RegExp(`version: "${packageJson.version}"`)); | ||
| assert.match(codemodYaml, /workflow: "workflow\.yaml"/); |
There was a problem hiding this comment.
new RegExp(version: "${packageJson.version}") treats . (and other regex metacharacters) in the version string as wildcards, so the test can pass even when codemod.yaml has a different version. Escape the interpolated version (e.g., via an escapeRegExp helper) so the match is exact.
No description provided.