Skip to content

Add Nx Release GitHub action#1377

Merged
mamu0 merged 63 commits intomainfrom
feat-add-nx-release-support
Mar 24, 2026
Merged

Add Nx Release GitHub action#1377
mamu0 merged 63 commits intomainfrom
feat-add-nx-release-support

Conversation

@mamu0
Copy link
Copy Markdown
Contributor

@mamu0 mamu0 commented Mar 2, 2026

This pull request introduces Nx release automation to the repository, enabling seamless versioning and publishing workflows for Nx monorepos, similar to the existing Changesets process.
The main changes include adding a new composite GitHub Action for managing Nx releases and updating release workflows to auto-detect and use the appropriate tool (Changesets or Nx).

Resolves: CES-1713

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Mar 2, 2026

🦋 Changeset detected

Latest commit: 11eab06

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
nx-release Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Comment thread .github/workflows/release-v1.yaml Fixed
Comment thread actions/nx-release/action.yaml Fixed
Comment thread actions/nx-release/action.yaml Fixed
Comment thread actions/nx-release/action.yaml Fixed
Comment thread actions/nx-release/scripts/create-tags-releases.ts Fixed
Comment thread actions/nx-release/scripts/detect-intent.ts Fixed
Comment thread .github/workflows/release-v1.yaml Fixed
Comment thread actions/nx-release/action.yaml Fixed
Comment thread actions/nx-release/action.yaml Fixed
Comment thread actions/nx-release/scripts/manage-version-pr.ts Outdated
Comment thread actions/nx-release/scripts/sync-tags-releases.ts Outdated
Comment thread actions/nx-release/scripts/shared.ts Outdated
Comment thread actions/nx-release/scripts/shared.ts Outdated
Comment thread actions/nx-release/scripts/shared.ts Outdated
Comment thread actions/nx-release/scripts/sync-tags-releases.ts Outdated
Comment thread actions/nx-release/scripts/sync-tags-releases.ts Outdated
@kin0992 kin0992 requested review from kin0992 and removed request for kin0992 March 23, 2026 16:28
@mamu0 mamu0 requested a review from gunzip March 23, 2026 16:38
Comment thread .github/workflows/release-v1.yaml Outdated
Comment thread actions/nx-release/scripts/extract-projects-to-build.ts Outdated
@mamu0 mamu0 requested a review from lucacavallaro March 23, 2026 16:55
@mamu0 mamu0 merged commit bf3fc4e into main Mar 24, 2026
8 checks passed
@mamu0 mamu0 deleted the feat-add-nx-release-support branch March 24, 2026 16:29
mamu0 added a commit that referenced this pull request Mar 26, 2026
This pull request introduces configuration changes to the `nx.json`
file. The main updates involve adding a new release configuration
section to prepare it for the switch to the Nx release.

**NOTE**: This change **has no impact** on the current workflow until
`nx release` is used instead of `Changesets`; it's an initial
configuration.

### Parameters configured:
- `versionPlans: true`: This allows developers to define version
increments in dedicated files (similar to Changesets) which are then
"consumed" during the release process.
- `projectsRelationship: "independent"`: Necessary to prevents a single
global version for the whole workspace.
- `createRelease: false`: GitHub releases are disabled at this stage.
Since this process runs during the PR creation, we must wait until the
PR is merged to create the actual official release ( #1377 ).
- `renderOptions:` Currently, all metadata options (Authors, Commit
Refs, Dates) are set to true to provide maximum traceability. These can
be adjusted if we prefer a more concise changelog format in the future
([documentation](https://nx.dev/docs/guides/nx-release/configure-changelog-format)).
- `commit: false`: This is disabled to permit the execution of other
commands, some verification and the PR description build during the Nx
release action ( #1377 ).
- `tag: true`: Tags will be created but not pushed during PR creation,
this is necessary to allow the PR ( #1377 ) to retrieve the tags
generated by Nx during the publish phase.
- `pattern: "{projectName}@{version}"`: The [default tag
configuration](https://nx.dev/docs/guides/nx-release/release-projects-independently#create-a-git-tag-for-each-project)
already follows this pattern, but explicitly defining it improves
clarity


Resolves: CES-1761

---------

Co-authored-by: Danilo Spinelli <gunzip@users.noreply.github.com>
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.

6 participants