mirror of
https://github.com/changesets/action
synced 2026-10-26 16:39:56 +08:00
Compare commits
25
Commits
v2.0.0-next.4
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
615034bb14 | ||
|
|
8380fc6a4d | ||
|
|
e912ac334c | ||
|
|
f01916801c | ||
|
|
a4133a0d28 | ||
|
|
0138f456ec | ||
|
|
88338839e3 | ||
|
|
e08fde7435 | ||
|
|
371fd77b45 | ||
|
|
85efcafd80 | ||
|
|
5bb9d5ccac | ||
|
|
ca8589735a | ||
|
|
36f529f13a | ||
|
|
d7669c894a | ||
|
|
da1ea291ef | ||
|
|
7545547fe4 | ||
|
|
3043070b0d | ||
|
|
3b7c71c440 | ||
|
|
6f58ba3580 | ||
|
|
e52ce9e59b | ||
|
|
78fdc6bb2e | ||
|
|
187a104ea0 | ||
|
|
d11394aa52 | ||
|
|
5fa67671df | ||
|
|
cae6353519 |
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": patch
|
||||
---
|
||||
|
||||
Fix the computed publish plan path passed internally to `changeset pack` by the `/pack` subaction.
|
||||
@@ -1,9 +0,0 @@
|
||||
---
|
||||
"@changesets/action": major
|
||||
---
|
||||
|
||||
Release commits and tags are now pushed using the GitHub API by default.
|
||||
|
||||
Replace the `commit-mode` input with the boolean `push-with-git-cli` input. Set `push-with-git-cli: true` to continue using the Git CLI.
|
||||
|
||||
Regardless of the push mode, custom GitHub tokens must be passed explicitly through the `github-token` input. The `GITHUB_TOKEN` environment variable and credentials configured by `actions/checkout` or embedded in remote URLs are not substitutes for this input. When the Git CLI is enabled, `github-token` takes precedence over those repository credentials.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": patch
|
||||
---
|
||||
|
||||
Validate that projects use Changesets CLI v3 and direct Changesets CLI v2 users to `changesets/action@v1`.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": patch
|
||||
---
|
||||
|
||||
Allow custom publish scripts to complete without a Changesets output file, warning that GitHub releases and git tags cannot be created when that file is missing.
|
||||
@@ -1,7 +0,0 @@
|
||||
---
|
||||
"@changesets/action": major
|
||||
---
|
||||
|
||||
Add a new `push-git-tags` option that complements `create-github-releases` to control specifically if git tags should be created but not GitHub releases.
|
||||
|
||||
If `create-github-releases` was previously set to `false`, which also indirectly disabled git tag creation, git tags will now be created instead by default. If this is not desired, set `push-git-tags` to `false` explicitly.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": minor
|
||||
---
|
||||
|
||||
Add new `/select-mode`, `/version`, and `/publish` sub-actions to better control version and publish steps
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": major
|
||||
---
|
||||
|
||||
Removed compatibility support for old Changesets v1.
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
"@changesets/action": major
|
||||
---
|
||||
|
||||
Rename the root action inputs and outputs to better match the sub-actions' conventions.
|
||||
|
||||
Inputs:
|
||||
|
||||
- `version` -> `version-script`
|
||||
- `publish` -> `publish-script`
|
||||
- `commit` -> `commit-message`
|
||||
- `title` -> `pr-title`
|
||||
- `branch` -> `pr-base-branch`
|
||||
|
||||
Outputs:
|
||||
|
||||
- `pull-request-number` -> `pr-number`
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": major
|
||||
---
|
||||
|
||||
Remove support for passing custom GitHub token through the GITHUB_TOKEN environment variable. It should be passed to the `github-token` input instead.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": patch
|
||||
---
|
||||
|
||||
Authenticate git CLI pushes with the configured GitHub token using Git extra headers instead of writing to a global `.netrc` file.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": patch
|
||||
---
|
||||
|
||||
Derive the Git server URL from the GitHub Actions context when configuring git CLI authentication to support GitHub Enterprise Server setups.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": patch
|
||||
---
|
||||
|
||||
Fixed a regression making it impossible to sync new versions of versioning pull requests with base branch updates when using GitHub API pushes.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": major
|
||||
---
|
||||
|
||||
Remove `cwd` option for `changesets/action`. Use the step `working-directory` option instead to change the directory.
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
"mode": "pre",
|
||||
"tag": "next",
|
||||
"changesets": [
|
||||
"all-cars-grin",
|
||||
"brave-pandas-commit",
|
||||
"bright-lions-check",
|
||||
"calm-files-warn",
|
||||
"chubby-geese-sink",
|
||||
"eight-clocks-pull",
|
||||
"eighty-doors-swim",
|
||||
"eighty-parks-tickle",
|
||||
"fiery-toes-vanish",
|
||||
"git-cli-auth-header",
|
||||
"git-cli-server-url",
|
||||
"green-birds-push",
|
||||
"lemon-turtles-itch",
|
||||
"ready-mangos-boil",
|
||||
"shaky-rings-type",
|
||||
"shy-months-crash",
|
||||
"silent-tips-dance",
|
||||
"strict-hotels-laugh",
|
||||
"tidy-bots-smile",
|
||||
"yellow-roses-fix"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": patch
|
||||
---
|
||||
|
||||
Fixed usage of `--from-publish-plan` flag used by the `/pack` subaction
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": major
|
||||
---
|
||||
|
||||
Update to Changesets v3 packages
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": minor
|
||||
---
|
||||
|
||||
Published packages detection done through stdout parsing was replaced with one based on the shared output file using `CHANGESETS_OUTPUT` environment variable. When using custom scripts this environment variable should always be passed down to the Changesets CLI invocations.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": patch
|
||||
---
|
||||
|
||||
Fix the `/version` subaction to not crash on missing `pr-base-branch` input. This input is meant to be optional.
|
||||
@@ -1,7 +0,0 @@
|
||||
---
|
||||
"@changesets/action": major
|
||||
---
|
||||
|
||||
Removed `.npmrc` handling when the `NPM_TOKEN` environment variable is set.
|
||||
|
||||
Authentication should be handled via Trusted Publishing instead. If a token is still needed, use `actions/setup-node` to set it up instead via the `registry-url` option. Check out the updated action README for more information of setting up npm authentication in GitHub Actions.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": patch
|
||||
---
|
||||
|
||||
Remove the `setup-git-user` input. Complete custom Git identities are now preserved automatically, while `github-actions[bot]` is configured as a fallback before creating local release commits or tags.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
"@changesets/action": major
|
||||
---
|
||||
|
||||
Rename the input and output names to kebab-case instead of camelCase to match the official GitHub actions pattern
|
||||
@@ -10,6 +10,11 @@ inputs:
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Check out repo
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Set up pnpm
|
||||
uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5
|
||||
|
||||
|
||||
@@ -27,12 +27,12 @@ jobs:
|
||||
security-events: write # allow writing security events
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Run zizmor
|
||||
uses: zizmorcore/zizmor-action@5f14fd08f7cf1cb1609c1e344975f152c7ee938d # v0.5.6
|
||||
uses: zizmorcore/zizmor-action@cc914d7f3750a2d13d75c7f184a1060aa0e9d482 # v0.6.4
|
||||
with:
|
||||
persona: pedantic
|
||||
annotations: true
|
||||
@@ -43,12 +43,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 20
|
||||
steps:
|
||||
- name: Check out repo
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- uses: ./.github/actions/ci-setup
|
||||
- uses: $/.github/actions/ci-setup
|
||||
|
||||
- name: Test
|
||||
run: pnpm test
|
||||
@@ -58,12 +53,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 20
|
||||
steps:
|
||||
- name: Check out repo
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- uses: ./.github/actions/ci-setup
|
||||
- uses: $/.github/actions/ci-setup
|
||||
|
||||
- name: Typecheck
|
||||
run: pnpm typecheck
|
||||
@@ -73,12 +63,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 20
|
||||
steps:
|
||||
- name: Check out repo
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- uses: ./.github/actions/ci-setup
|
||||
- uses: $/.github/actions/ci-setup
|
||||
|
||||
- name: Format
|
||||
run: pnpm format
|
||||
|
||||
@@ -24,12 +24,7 @@ jobs:
|
||||
permissions:
|
||||
contents: read # to check out repo (actions/checkout)
|
||||
steps:
|
||||
- name: Check out repo
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- uses: ./.github/actions/ci-setup
|
||||
- uses: $/.github/actions/ci-setup
|
||||
with:
|
||||
skip-cache: true # avoid cache poisoning attacks
|
||||
|
||||
@@ -38,7 +33,7 @@ jobs:
|
||||
|
||||
- name: Select mode
|
||||
id: select-mode
|
||||
uses: ./select-mode
|
||||
uses: $/select-mode
|
||||
|
||||
version:
|
||||
name: Version
|
||||
@@ -50,19 +45,14 @@ jobs:
|
||||
permissions:
|
||||
contents: read # to check out repo (actions/checkout)
|
||||
steps:
|
||||
- name: Check out repo
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- uses: ./.github/actions/ci-setup
|
||||
- uses: $/.github/actions/ci-setup
|
||||
with:
|
||||
skip-cache: true # avoid cache poisoning attacks
|
||||
|
||||
- name: Build
|
||||
run: pnpm build
|
||||
|
||||
- uses: ./.github/actions/setup-bot-auth
|
||||
- uses: $/.github/actions/setup-bot-auth
|
||||
id: bot-auth
|
||||
with:
|
||||
client-id: ${{ vars.APP_CLIENT_ID }}
|
||||
@@ -72,7 +62,7 @@ jobs:
|
||||
|
||||
- name: Create or update release pull request
|
||||
id: changesets
|
||||
uses: ./version
|
||||
uses: $/version
|
||||
with:
|
||||
github-token: ${{ steps.bot-auth.outputs.token }}
|
||||
script: pnpm bump
|
||||
@@ -87,19 +77,14 @@ jobs:
|
||||
permissions:
|
||||
contents: write # to create release and have it authored by github-actions (changesets/action)
|
||||
steps:
|
||||
- name: Check out repo
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- uses: ./.github/actions/ci-setup
|
||||
- uses: $/.github/actions/ci-setup
|
||||
with:
|
||||
skip-cache: true # avoid cache poisoning attacks
|
||||
|
||||
- name: Build
|
||||
run: pnpm build
|
||||
|
||||
- uses: ./.github/actions/setup-bot-auth
|
||||
- uses: $/.github/actions/setup-bot-auth
|
||||
id: bot-auth
|
||||
with:
|
||||
client-id: ${{ vars.APP_CLIENT_ID }}
|
||||
@@ -107,7 +92,7 @@ jobs:
|
||||
permission-contents: write # to bypass branch and tag protection rules (release.ts)
|
||||
|
||||
- name: Publish to marketplace
|
||||
uses: ./publish
|
||||
uses: $/publish
|
||||
with:
|
||||
github-token: ${{ steps.bot-auth.outputs.token }}
|
||||
script: pnpm release
|
||||
|
||||
@@ -122,12 +122,7 @@ jobs:
|
||||
pull-requests: write # to comment on the pull request with the release result (changesets/action)
|
||||
|
||||
steps:
|
||||
- name: Check out repo
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- uses: ./.github/actions/ci-setup
|
||||
- uses: $/.github/actions/ci-setup
|
||||
with:
|
||||
skip-cache: true # avoid cache poisoning attacks
|
||||
|
||||
@@ -166,7 +161,7 @@ jobs:
|
||||
- name: Build
|
||||
run: pnpm build
|
||||
|
||||
- uses: ./.github/actions/setup-bot-auth
|
||||
- uses: $/.github/actions/setup-bot-auth
|
||||
id: bot-auth
|
||||
with:
|
||||
client-id: ${{ vars.APP_CLIENT_ID }}
|
||||
|
||||
@@ -1,5 +1,99 @@
|
||||
# @changesets/action
|
||||
|
||||
## 2.1.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#735](https://github.com/changesets/action/pull/735) [`8833883`](https://github.com/changesets/action/commit/88338839e35c3e0fa61f3c9c3f27e7572cd5f2cf) Thanks [@bluwy](https://github.com/bluwy)! - Handle error when pushing git tags with the git CLI
|
||||
|
||||
- [#724](https://github.com/changesets/action/pull/724) [`36f529f`](https://github.com/changesets/action/commit/36f529f13ab58bbcf6331035cb950385586e8a89) Thanks [@bluwy](https://github.com/bluwy)! - Improve log messages
|
||||
|
||||
- [#724](https://github.com/changesets/action/pull/724) [`36f529f`](https://github.com/changesets/action/commit/36f529f13ab58bbcf6331035cb950385586e8a89) Thanks [@bluwy](https://github.com/bluwy)! - Fix root action double error logs
|
||||
|
||||
- [#729](https://github.com/changesets/action/pull/729) [`ca85897`](https://github.com/changesets/action/commit/ca8589735af2ff6977a0f6474537d550040530d8) Thanks [@bluwy](https://github.com/bluwy)! - Always switch and reset branch when generating version commits, similar to if `push-with-git-cli` is enabled
|
||||
|
||||
## 2.1.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#721](https://github.com/changesets/action/pull/721) [`da1ea29`](https://github.com/changesets/action/commit/da1ea291ef93203a08fad360eac36f4858dd0514) Thanks [@KEBABSELLER6](https://github.com/KEBABSELLER6)! - Fixed typo in renamed inputs from v1 to v2
|
||||
|
||||
## 2.1.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- [#718](https://github.com/changesets/action/pull/718) [`3b7c71c`](https://github.com/changesets/action/commit/3b7c71c440e75fca5d335f779290425fc1117fe8) Thanks [@bluwy](https://github.com/bluwy)! - Add a `cwd` input to the root action, `/select-mode`, `/version`, `/pack`, and `/publish` sub-actions to set the current working directory to execute Changesets in. This input existed in v1 but was incorrectly removed.
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#716](https://github.com/changesets/action/pull/716) [`6f58ba3`](https://github.com/changesets/action/commit/6f58ba35801ec075a1c87569277591f8ef1a3029) Thanks [@bluwy](https://github.com/bluwy)! - Update `pr-status` message to link to the new faq page
|
||||
|
||||
## 2.0.0
|
||||
|
||||
### Major Changes
|
||||
|
||||
- [#692](https://github.com/changesets/action/pull/692) [`cb3f011`](https://github.com/changesets/action/commit/cb3f0110d7423cd340b1c5d63584c0ea6ee63959) Thanks [@Andarist](https://github.com/Andarist)! - Release commits and tags are now pushed using the GitHub API by default.
|
||||
|
||||
Replace the `commit-mode` input with the boolean `push-with-git-cli` input. Set `push-with-git-cli: true` to continue using the Git CLI.
|
||||
|
||||
Regardless of the push mode, custom GitHub tokens must be passed explicitly through the `github-token` input. The `GITHUB_TOKEN` environment variable and credentials configured by `actions/checkout` or embedded in remote URLs are not substitutes for this input. When the Git CLI is enabled, `github-token` takes precedence over those repository credentials.
|
||||
|
||||
- [#680](https://github.com/changesets/action/pull/680) [`ca57073`](https://github.com/changesets/action/commit/ca57073900dc678254406a052a03c0c8824e319d) Thanks [@bluwy](https://github.com/bluwy)! - Add a new `push-git-tags` option that complements `create-github-releases` to control specifically if git tags should be created but not GitHub releases.
|
||||
|
||||
If `create-github-releases` was previously set to `false`, which also indirectly disabled git tag creation, git tags will now be created instead by default. If this is not desired, set `push-git-tags` to `false` explicitly.
|
||||
|
||||
- [#657](https://github.com/changesets/action/pull/657) [`4f718b5`](https://github.com/changesets/action/commit/4f718b5921490b1efeb015a81abb6a4633892851) Thanks [@Andarist](https://github.com/Andarist)! - Removed compatibility support for old Changesets v1.
|
||||
|
||||
- [#681](https://github.com/changesets/action/pull/681) [`7359107`](https://github.com/changesets/action/commit/73591071e61c7f61cf322dd7a6341dc29a8e1d4e) Thanks [@bluwy](https://github.com/bluwy)! - Rename the root action inputs and outputs to better match the sub-actions' conventions.
|
||||
|
||||
Inputs:
|
||||
|
||||
- `version` -> `version-script`
|
||||
- `publish` -> `publish-script`
|
||||
- `commit` -> `commit-message`
|
||||
- `title` -> `pr-title`
|
||||
- `branch` -> `pr-base-branch`
|
||||
|
||||
Outputs:
|
||||
|
||||
- `pull-request-number` -> `pr-number`
|
||||
|
||||
- [#674](https://github.com/changesets/action/pull/674) [`164652b`](https://github.com/changesets/action/commit/164652bdd60525670d95291addb8c6f92833ac60) Thanks [@bluwy](https://github.com/bluwy)! - Remove support for passing custom GitHub token through the GITHUB_TOKEN environment variable. It should be passed to the `github-token` input instead.
|
||||
|
||||
- [#659](https://github.com/changesets/action/pull/659) [`5649ff4`](https://github.com/changesets/action/commit/5649ff41b8eb1b7a281011e45df781c6d4628fd0) Thanks [@bluwy](https://github.com/bluwy)! - Remove `cwd` option for `changesets/action`. Use the step `working-directory` option instead to change the directory.
|
||||
|
||||
- [#673](https://github.com/changesets/action/pull/673) [`823cf74`](https://github.com/changesets/action/commit/823cf741ca57c5e22652123d3a847dfafcd77ca0) Thanks [@bluwy](https://github.com/bluwy)! - Update to Changesets v3 packages
|
||||
|
||||
- [#695](https://github.com/changesets/action/pull/695) [`469993c`](https://github.com/changesets/action/commit/469993ce5783c6a38e72541d4ba0d25588702b9a) Thanks [@bluwy](https://github.com/bluwy)! - Removed `.npmrc` handling when the `NPM_TOKEN` environment variable is set.
|
||||
|
||||
Authentication should be handled via Trusted Publishing instead. If a token is still needed, use `actions/setup-node` to set it up instead via the `registry-url` option. Check out the updated action README for more information of setting up npm authentication in GitHub Actions.
|
||||
|
||||
- [#668](https://github.com/changesets/action/pull/668) [`0eae789`](https://github.com/changesets/action/commit/0eae789230defbc4ad287e9b476aba7e842e34e0) Thanks [@bluwy](https://github.com/bluwy)! - Rename the input and output names to kebab-case instead of camelCase to match the official GitHub actions pattern
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- [#656](https://github.com/changesets/action/pull/656) [`a12d90d`](https://github.com/changesets/action/commit/a12d90de8394e63c952622b2fd3f98c8729c48b0) Thanks [@bluwy](https://github.com/bluwy)! - Add new `/select-mode`, `/version`, and `/publish` sub-actions to better control version and publish steps
|
||||
|
||||
- [#678](https://github.com/changesets/action/pull/678) [`f71ae04`](https://github.com/changesets/action/commit/f71ae043ed5deb17952900091e009a60edef9507) Thanks [@Andarist](https://github.com/Andarist)! - Published packages detection done through stdout parsing was replaced with one based on the shared output file using `CHANGESETS_OUTPUT` environment variable. When using custom scripts this environment variable should always be passed down to the Changesets CLI invocations.
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#699](https://github.com/changesets/action/pull/699) [`5b307d3`](https://github.com/changesets/action/commit/5b307d3df25daf51c41dff70d2f66df1579ae9fa) Thanks [@Andarist](https://github.com/Andarist)! - Validate that projects use Changesets CLI v3 and direct Changesets CLI v2 users to `changesets/action@v1`.
|
||||
|
||||
- [#697](https://github.com/changesets/action/pull/697) [`84d78c6`](https://github.com/changesets/action/commit/84d78c68f98f20e24dfff22b22193e7b4f326ad9) Thanks [@Andarist](https://github.com/Andarist)! - Allow custom publish scripts to complete without a Changesets output file, warning that GitHub releases and git tags cannot be created when that file is missing.
|
||||
|
||||
- [#670](https://github.com/changesets/action/pull/670) [`5a8b9b7`](https://github.com/changesets/action/commit/5a8b9b721bf683e3bf9bd72ea92a685dc024147b) Thanks [@Andarist](https://github.com/Andarist)! - Authenticate git CLI pushes with the configured GitHub token using Git extra headers instead of writing to a global `.netrc` file.
|
||||
|
||||
- [#670](https://github.com/changesets/action/pull/670) [`5a8b9b7`](https://github.com/changesets/action/commit/5a8b9b721bf683e3bf9bd72ea92a685dc024147b) Thanks [@Andarist](https://github.com/Andarist)! - Derive the Git server URL from the GitHub Actions context when configuring git CLI authentication to support GitHub Enterprise Server setups.
|
||||
|
||||
- [#688](https://github.com/changesets/action/pull/688) [`219ea82`](https://github.com/changesets/action/commit/219ea82e52caaff2a10a5e34d3455093cf958238) Thanks [@Andarist](https://github.com/Andarist)! - Remove the `setup-git-user` input. Complete custom Git identities are now preserved automatically, while `github-actions[bot]` is configured as a fallback before creating local release commits or tags.
|
||||
|
||||
## 2.0.0-next.5
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#711](https://github.com/changesets/action/pull/711) [`5fa6767`](https://github.com/changesets/action/commit/5fa67671df41b7a8a9d8123e8e446b1a8ad423db) Thanks [@Andarist](https://github.com/Andarist)! - Fix support for prerelease exits using the new `.changeset/pre` layout.
|
||||
|
||||
## 2.0.0-next.4
|
||||
|
||||
### Major Changes
|
||||
|
||||
@@ -62,6 +62,7 @@ If using [trusted publishing](https://docs.npmjs.com/trusted-publishers), it's r
|
||||
| `create-github-releases` | Whether to create Github releases after publish |
|
||||
| `push-git-tags` | Whether to create git tags after publish. If `create-github-releases` is set to `true`, this option will also always be `true`. |
|
||||
| `push-with-git-cli` | Whether to use the Git CLI instead of the GitHub API to push release commits and tags. Defaults to `false`. When using the GitHub API, commits and tags are signed using GitHub's GPG key and attributed to the user or app that owns the `github-token`. |
|
||||
| `cwd` | The working directory to execute Changesets in. Defaults to the root of the repository. |
|
||||
|
||||
| Outputs | Description |
|
||||
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
|
||||
@@ -47,6 +47,9 @@ inputs:
|
||||
GitHub's GPG key and attributed to the user or app that owns the `github-token`.
|
||||
required: false
|
||||
default: false
|
||||
cwd:
|
||||
description: "The working directory to execute Changesets in. Defaults to the root of the repository."
|
||||
required: false
|
||||
outputs:
|
||||
published:
|
||||
description: A "true" or "false" string value to indicate whether a publishing is happened or not
|
||||
|
||||
+4
-3
@@ -17,9 +17,10 @@ This action packs publishable packages into tarballs, complements [changesets/ac
|
||||
|
||||
<!-- api-start -->
|
||||
|
||||
| Inputs | Description |
|
||||
| -------------------------- | --------------------------------------------------------------------- |
|
||||
| `publish-plan-artifact-id` | Artifact id for a publish plan generated by the select-mode subaction |
|
||||
| Inputs | Description |
|
||||
| -------------------------- | --------------------------------------------------------------------------------------- |
|
||||
| `publish-plan-artifact-id` | Artifact id for a publish plan generated by the select-mode subaction |
|
||||
| `cwd` | The working directory to execute Changesets in. Defaults to the root of the repository. |
|
||||
|
||||
| Outputs | Description |
|
||||
| ---------------------- | ------------------------------------------- |
|
||||
|
||||
@@ -7,6 +7,9 @@ inputs:
|
||||
publish-plan-artifact-id:
|
||||
description: "Artifact id for a publish plan generated by the select-mode subaction"
|
||||
required: false
|
||||
cwd:
|
||||
description: "The working directory to execute Changesets in. Defaults to the root of the repository."
|
||||
required: false
|
||||
outputs:
|
||||
pack-dir-artifact-id:
|
||||
description: "Artifact id for the packed output directory"
|
||||
|
||||
+24
-24
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@changesets/action",
|
||||
"version": "2.0.0-next.4",
|
||||
"version": "2.1.2",
|
||||
"private": true,
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
@@ -23,36 +23,36 @@
|
||||
"@actions/core": "^3.0.1",
|
||||
"@actions/exec": "^3.0.0",
|
||||
"@actions/github": "^9.1.1",
|
||||
"@changesets/get-release-plan": "^5.0.0-next.7",
|
||||
"@changesets/get-release-plan": "^5.0.2",
|
||||
"@changesets/ghcommit": "^3.0.0",
|
||||
"@changesets/git": "^4.0.0-next.6",
|
||||
"@changesets/pre": "^3.0.0-next.6",
|
||||
"@changesets/read": "^1.0.0-next.7",
|
||||
"@changesets/git": "^4.0.1",
|
||||
"@changesets/pre": "^3.0.0",
|
||||
"@changesets/read": "^1.0.1",
|
||||
"@manypkg/get-packages": "^3.1.0",
|
||||
"@octokit/core": "^7.0.6",
|
||||
"@octokit/plugin-throttling": "^11.0.3",
|
||||
"human-id": "^4.1.3",
|
||||
"@octokit/core": "^7.0.8",
|
||||
"@octokit/plugin-throttling": "^11.0.5",
|
||||
"human-id": "^4.2.1",
|
||||
"markdown-table": "^3.0.4",
|
||||
"semver": "^7.8.1",
|
||||
"tinyexec": "^1.2.4"
|
||||
"semver": "^7.8.5",
|
||||
"tinyexec": "^1.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@changesets/changelog-github": "^1.0.0-next.6",
|
||||
"@changesets/cli": "^3.0.0-next.8",
|
||||
"@changesets/types": "^7.0.0-next.6",
|
||||
"@changesets/write": "^1.0.0-next.6",
|
||||
"@tsconfig/node24": "^24.0.4",
|
||||
"@types/node": "^24.12.4",
|
||||
"@types/semver": "^7.7.1",
|
||||
"fs-fixture": "^2.13.0",
|
||||
"oxfmt": "^0.48.0",
|
||||
"rolldown": "^1.0.1",
|
||||
"typescript": "^6.0.3",
|
||||
"vitest": "^4.1.6",
|
||||
"yaml": "^2.9.0"
|
||||
"@changesets/changelog-github": "^1.0.1",
|
||||
"@changesets/cli": "^3.0.3",
|
||||
"@changesets/types": "^7.0.0",
|
||||
"@changesets/write": "^1.0.1",
|
||||
"@tsconfig/node24": "^24.0.5",
|
||||
"@types/node": "^26.6.2",
|
||||
"@types/semver": "^7.8.0",
|
||||
"fs-fixture": "^2.16.0",
|
||||
"oxfmt": "^0.70.0",
|
||||
"rolldown": "^1.2.10",
|
||||
"typescript": "^7.0.2",
|
||||
"vitest": "^5.0.1",
|
||||
"yaml": "^2.9.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=24"
|
||||
},
|
||||
"packageManager": "pnpm@11.1.1+sha512.d1fdf5f73c617b64fa1a56a81c3c8dfe0e966e33a6010aa256b517ae77be21d93e05affc0de1a83b0e4f29d569f68b446ae8f068cd7247c0bb3df0fb4d7bdf9a"
|
||||
"packageManager": "pnpm@11.20.0+sha512.9a6f330a95b66446ea088faf1521405a8a01f07fde7124cc9958dfed52d4bb436737e65b08f85f37b46fcba375092558ac51262b816844b22f63406ed166bfee"
|
||||
}
|
||||
|
||||
Generated
+970
-799
File diff suppressed because it is too large
Load Diff
+18
-16
@@ -3,22 +3,24 @@ dedupePeers: true
|
||||
dedupePeerDependents: true
|
||||
minimumReleaseAge: 10080
|
||||
minimumReleaseAgeExclude:
|
||||
- "@changesets/apply-release-plan@8.0.0-next.7"
|
||||
- "@changesets/assemble-release-plan@7.0.0-next.7"
|
||||
- "@changesets/changelog-git@1.0.0-next.6"
|
||||
- "@changesets/changelog-github@1.0.0-next.6"
|
||||
- "@changesets/cli@3.0.0-next.8"
|
||||
- "@changesets/config@4.0.0-next.6"
|
||||
- "@changesets/get-dependents-graph@3.0.0-next.6"
|
||||
- "@changesets/get-github-info@1.0.0-next.3"
|
||||
- "@changesets/get-release-plan@5.0.0-next.7"
|
||||
- "@changesets/git@4.0.0-next.6"
|
||||
- "@changesets/parse@1.0.0-next.7"
|
||||
- "@changesets/pre@3.0.0-next.6"
|
||||
- "@changesets/read@1.0.0-next.7"
|
||||
- "@changesets/should-skip-package@1.0.0-next.6"
|
||||
- "@changesets/types@7.0.0-next.6"
|
||||
- "@changesets/write@1.0.0-next.6"
|
||||
- "@changesets/apply-release-plan@8.0.0"
|
||||
- "@changesets/assemble-release-plan@7.0.0"
|
||||
- "@changesets/changelog-git@1.0.0"
|
||||
- "@changesets/changelog-github@1.0.0"
|
||||
- "@changesets/cli@3.0.0"
|
||||
- "@changesets/config@4.0.0"
|
||||
- "@changesets/errors@1.0.0"
|
||||
- "@changesets/get-dependents-graph@3.0.0"
|
||||
- "@changesets/get-github-info@1.0.0"
|
||||
- "@changesets/get-release-plan@5.0.0"
|
||||
- "@changesets/git@4.0.0"
|
||||
- "@changesets/parse@1.0.0"
|
||||
- "@changesets/pre@3.0.0"
|
||||
- "@changesets/read@1.0.0"
|
||||
- "@changesets/should-skip-package@1.0.0"
|
||||
- "@changesets/types@7.0.0"
|
||||
- "@changesets/write@1.0.0"
|
||||
- "vite@8.2.0"
|
||||
|
||||
overrides:
|
||||
lightningcss: "-" # we do not bundle any css
|
||||
|
||||
@@ -25,6 +25,7 @@ This action publishes packages to npm.
|
||||
| `pack-dir-artifact-id` | Artifact id for packed publish output generated by the pack subaction |
|
||||
| `create-github-releases` | Whether to create Github releases after publish |
|
||||
| `push-git-tags` | Whether to create git tags after publish. If `create-github-releases` is set to `true`, this option will also always be `true`. |
|
||||
| `cwd` | The working directory to execute Changesets in. Defaults to the root of the repository. |
|
||||
|
||||
| Outputs | Description |
|
||||
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
|
||||
@@ -26,6 +26,9 @@ inputs:
|
||||
this option will also always be `true`.
|
||||
required: false
|
||||
default: true
|
||||
cwd:
|
||||
description: "The working directory to execute Changesets in. Defaults to the root of the repository."
|
||||
required: false
|
||||
outputs:
|
||||
published:
|
||||
description: A "true" or "false" string value to indicate whether a publishing has happened or not
|
||||
|
||||
@@ -20,7 +20,9 @@ This action selects the mode to run a Changesets workflow:
|
||||
|
||||
<!-- api-start -->
|
||||
|
||||
Inputs: _none_
|
||||
| Inputs | Description |
|
||||
| ------ | --------------------------------------------------------------------------------------- |
|
||||
| `cwd` | The working directory to execute Changesets in. Defaults to the root of the repository. |
|
||||
|
||||
| Outputs | Description |
|
||||
| -------------------------- | ---------------------------------------------------------------------------- |
|
||||
|
||||
@@ -3,7 +3,10 @@ description: Whether to version or publish in the current repo state
|
||||
runs:
|
||||
using: node24
|
||||
main: ../dist/select-mode.js
|
||||
inputs: {}
|
||||
inputs:
|
||||
cwd:
|
||||
description: "The working directory to execute Changesets in. Defaults to the root of the repository."
|
||||
required: false
|
||||
outputs:
|
||||
mode:
|
||||
description: "The mode to use for the current repo state: 'version', 'publish', or 'none'."
|
||||
|
||||
+17
-19
@@ -195,7 +195,7 @@ export class GitHub {
|
||||
if (authorIdentity.exitCode === 0 && committerIdentity.exitCode === 0) {
|
||||
return;
|
||||
}
|
||||
core.info("Setting Git user to github-actions[bot]");
|
||||
core.info("Setting git user to github-actions[bot]");
|
||||
await exec("git", ["config", "user.name", `"github-actions[bot]"`], {
|
||||
cwd: this.cwd,
|
||||
});
|
||||
@@ -213,32 +213,30 @@ export class GitHub {
|
||||
}
|
||||
|
||||
async pushTag(tag: string) {
|
||||
if (!this.pushWithGitCli) {
|
||||
return this.octokit.rest.git
|
||||
.createRef({
|
||||
try {
|
||||
if (!this.pushWithGitCli) {
|
||||
await this.octokit.rest.git.createRef({
|
||||
...context.repo,
|
||||
ref: `refs/tags/${tag}`,
|
||||
sha: context.sha,
|
||||
})
|
||||
.catch((err) => {
|
||||
// Assuming tag was manually pushed in custom publish script
|
||||
core.warning(`Failed to create tag ${tag}: ${err.message}`);
|
||||
});
|
||||
} else {
|
||||
await exec("git", ["push", "origin", tag], {
|
||||
cwd: this.cwd,
|
||||
env: {
|
||||
...process.env,
|
||||
...(await this.#getCliAuthEnv()),
|
||||
} as Record<string, string>,
|
||||
});
|
||||
}
|
||||
} catch (err) {
|
||||
core.warning(
|
||||
`Failed to create git tag "${tag}". Assuming it was manually pushed by the publish script: ${(err as Error).message}`,
|
||||
);
|
||||
}
|
||||
await exec("git", ["push", "origin", tag], {
|
||||
cwd: this.cwd,
|
||||
env: {
|
||||
...process.env,
|
||||
...(await this.#getCliAuthEnv()),
|
||||
} as Record<string, string>,
|
||||
});
|
||||
}
|
||||
|
||||
async prepareBranch(branch: string) {
|
||||
if (!this.pushWithGitCli) {
|
||||
// Preparing a new local branch is not necessary when using the API
|
||||
return;
|
||||
}
|
||||
await switchToMaybeExistingBranch(branch, { cwd: this.cwd });
|
||||
await reset(context.sha, { cwd: this.cwd });
|
||||
}
|
||||
|
||||
+13
-12
@@ -10,15 +10,20 @@ import {
|
||||
validateChangesetsCliVersion,
|
||||
} from "./utils.ts";
|
||||
|
||||
(async () => {
|
||||
// If the user needs to change the cwd, set `working-directory` in the step instead
|
||||
const cwd = process.cwd();
|
||||
try {
|
||||
await main();
|
||||
} catch (err) {
|
||||
core.setFailed((err as Error).message);
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const cwd = getOptionalInput("cwd") || process.cwd();
|
||||
await validateChangesetsCliVersion(cwd);
|
||||
|
||||
throwOnRenamedInputs({
|
||||
publish: "publish-script",
|
||||
version: "version-script",
|
||||
commit: "commit-mesage",
|
||||
commit: "commit-message",
|
||||
title: "pr-title",
|
||||
branch: "pr-base-branch",
|
||||
prDraft: "pr-draft",
|
||||
@@ -63,7 +68,7 @@ import {
|
||||
switch (true) {
|
||||
case !hasChangesets && !hasPublishScript:
|
||||
core.info(
|
||||
"No changesets present or were removed by merging release PR. Not publishing because no publish script found.",
|
||||
"No changesets present or were removed by merging version PR. Not publishing because publish-script is not set.",
|
||||
);
|
||||
return;
|
||||
case !hasChangesets && hasPublishScript: {
|
||||
@@ -99,7 +104,7 @@ import {
|
||||
}
|
||||
|
||||
if (result.exitCode !== 0) {
|
||||
core.error(
|
||||
throw new Error(
|
||||
`Publish command exited with code ${result.exitCode}${
|
||||
result.published
|
||||
? `, but some packages were published: ${result.publishedPackages
|
||||
@@ -108,12 +113,11 @@ import {
|
||||
: ""
|
||||
}`,
|
||||
);
|
||||
process.exit(result.exitCode);
|
||||
}
|
||||
return;
|
||||
}
|
||||
case hasChangesets && !hasNonEmptyChangesets:
|
||||
core.info("All changesets are empty; not creating PR");
|
||||
core.info("All changesets are empty. Not creating PR");
|
||||
return;
|
||||
case hasChangesets: {
|
||||
const { pullRequestNumber } = await runVersion({
|
||||
@@ -132,7 +136,4 @@ import {
|
||||
return;
|
||||
}
|
||||
}
|
||||
})().catch((err) => {
|
||||
core.error(err);
|
||||
core.setFailed(err.message);
|
||||
});
|
||||
}
|
||||
|
||||
+1
-2
@@ -17,8 +17,7 @@ try {
|
||||
}
|
||||
|
||||
async function main() {
|
||||
// If the user needs to change the cwd, set `working-directory` in the step instead
|
||||
const cwd = process.cwd();
|
||||
const cwd = getOptionalInput("cwd") || process.cwd();
|
||||
await validateChangesetsCliVersion(cwd);
|
||||
|
||||
const publishPlanArtifactId = getOptionalInput("publish-plan-artifact-id");
|
||||
|
||||
@@ -53,7 +53,7 @@ Latest commit: ${commitSha}
|
||||
|
||||
${getReleasePlanMessage(releasePlan)}
|
||||
|
||||
Not sure what this means? [Click here to learn what changesets are](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).
|
||||
Not sure what this means? [Click here to learn what changesets are](https://changesets.dev/faq).
|
||||
|
||||
[Click here if you're a maintainer who wants to add another changeset to this PR](${newChangesetUrl})`;
|
||||
}
|
||||
@@ -72,7 +72,7 @@ Merging this PR will not cause a version bump for any packages. If these changes
|
||||
|
||||
${getReleasePlanMessage(releasePlan)}
|
||||
|
||||
[Click here to learn what changesets are, and how to add one](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).
|
||||
[Click here to learn what changesets are, and how to add one](https://changesets.dev/faq).
|
||||
|
||||
[Click here if you're a maintainer who wants to add a changeset to this PR](${newChangesetUrl})`;
|
||||
}
|
||||
|
||||
@@ -17,8 +17,7 @@ try {
|
||||
}
|
||||
|
||||
async function main() {
|
||||
// If the user needs to change the cwd, set `working-directory` in the step instead
|
||||
const cwd = process.cwd();
|
||||
const cwd = getOptionalInput("cwd") || process.cwd();
|
||||
await validateChangesetsCliVersion(cwd);
|
||||
|
||||
const githubToken = getRequiredInput("github-token");
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
import { createFixture } from "fs-fixture";
|
||||
import { describe, expect, it } from "vitest";
|
||||
import readChangesetState from "./readChangesetState.ts";
|
||||
|
||||
const changeset = `---
|
||||
"pkg-a": patch
|
||||
---
|
||||
|
||||
Fix a bug.
|
||||
`;
|
||||
|
||||
describe("readChangesetState", () => {
|
||||
it("filters versioned changesets in prerelease mode", async () => {
|
||||
await using fixture = await createFixture({
|
||||
".changeset/pre.json": JSON.stringify({ mode: "pre", tag: "next" }),
|
||||
".changeset/pre/versioned.md": changeset,
|
||||
".changeset/pending.md": changeset,
|
||||
});
|
||||
|
||||
const state = await readChangesetState(fixture.path);
|
||||
|
||||
expect(state.changesets.map((changeset) => changeset.id)).toEqual([
|
||||
"pending",
|
||||
]);
|
||||
});
|
||||
|
||||
it("includes versioned changesets when exiting prerelease mode", async () => {
|
||||
await using fixture = await createFixture({
|
||||
".changeset/pre.json": JSON.stringify({ mode: "exit", tag: "next" }),
|
||||
".changeset/pre/versioned.md": changeset,
|
||||
});
|
||||
|
||||
const state = await readChangesetState(fixture.path);
|
||||
|
||||
expect(state.preState).toBeUndefined();
|
||||
expect(state.changesets.map((changeset) => changeset.id)).toEqual([
|
||||
"pre/versioned",
|
||||
]);
|
||||
});
|
||||
});
|
||||
@@ -14,11 +14,11 @@ export default async function readChangesetState(
|
||||
let changesets = await readChangesets(cwd);
|
||||
|
||||
if (preState !== undefined && preState.mode === "pre") {
|
||||
let changesetsToFilter = new Set(preState.changesets);
|
||||
|
||||
return {
|
||||
preState,
|
||||
changesets: changesets.filter((x) => !changesetsToFilter.has(x.id)),
|
||||
changesets: changesets.filter(
|
||||
(changeset) => !changeset.id.startsWith("pre/"),
|
||||
),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
+30
-12
@@ -1,12 +1,13 @@
|
||||
import path from "node:path";
|
||||
import * as core from "@actions/core";
|
||||
import * as github from "@actions/github";
|
||||
import type { Changeset } from "@changesets/types";
|
||||
import { writeChangeset } from "@changesets/write";
|
||||
import { createFixture } from "fs-fixture";
|
||||
import { exec } from "tinyexec";
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { GitHub } from "./github.ts";
|
||||
import { runPublish, runVersion } from "./run.ts";
|
||||
import { gitdir } from "./test-utils.ts";
|
||||
|
||||
vi.mock("@actions/github", () => ({
|
||||
context: {
|
||||
@@ -22,8 +23,12 @@ vi.mock("@actions/github", () => ({
|
||||
graphql: mockedGraphql,
|
||||
}),
|
||||
}));
|
||||
vi.mock("@actions/core", { spy: true });
|
||||
const mockedWarning = vi.mocked(core.warning);
|
||||
vi.mock("@actions/core", async (importOriginal) => ({
|
||||
...(await importOriginal<typeof import("@actions/core")>()),
|
||||
error: vi.fn(),
|
||||
notice: vi.fn(),
|
||||
warning: vi.fn(),
|
||||
}));
|
||||
vi.mock("@changesets/ghcommit");
|
||||
|
||||
let mockedGithubMethods = {
|
||||
@@ -40,7 +45,7 @@ let mockedGraphql = vi.fn();
|
||||
const nodeModulesDir = path.join(import.meta.dirname, "..", "node_modules");
|
||||
|
||||
function createSimpleProjectFixture() {
|
||||
return createFixture({
|
||||
return gitdir({
|
||||
node_modules: (api) => api.symlink(nodeModulesDir),
|
||||
".changeset/config.json": JSON.stringify({}),
|
||||
"packages/pkg-a/package.json": JSON.stringify({
|
||||
@@ -65,7 +70,7 @@ function createSimpleProjectFixture() {
|
||||
}
|
||||
|
||||
function createIgnoredPackageFixture() {
|
||||
return createFixture({
|
||||
return gitdir({
|
||||
node_modules: (api) => api.symlink(nodeModulesDir),
|
||||
".changeset/config.json": JSON.stringify({
|
||||
ignore: ["changesets-dev-ignored-package-pkg-a"],
|
||||
@@ -102,15 +107,20 @@ const createGithub = (cwd: string) =>
|
||||
pushWithGitCli: false,
|
||||
});
|
||||
|
||||
async function initializeGitRepository(cwd: string) {
|
||||
await exec("git", ["init"], {
|
||||
async function updateGithubContext(cwd: string) {
|
||||
const head = await exec("git", ["rev-parse", "HEAD"], {
|
||||
nodeOptions: { cwd },
|
||||
throwOnError: true,
|
||||
});
|
||||
github.context.sha = head.stdout.trim();
|
||||
}
|
||||
|
||||
function resetGithubContext() {
|
||||
github.context.sha = "xeac7";
|
||||
}
|
||||
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks();
|
||||
resetGithubContext();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
@@ -121,7 +131,7 @@ describe("publish", () => {
|
||||
it("warns when a custom publish script does not create the output file", async () => {
|
||||
await using fixture = await createSimpleProjectFixture();
|
||||
const cwd = fixture.path;
|
||||
await initializeGitRepository(cwd);
|
||||
await updateGithubContext(cwd);
|
||||
vi.stubEnv("RUNNER_TEMP", cwd);
|
||||
|
||||
const result = await runPublish({
|
||||
@@ -133,7 +143,7 @@ describe("publish", () => {
|
||||
});
|
||||
|
||||
expect(result).toEqual({ published: false, exitCode: 0 });
|
||||
expect(mockedWarning).toHaveBeenCalledWith(
|
||||
expect(core.warning).toHaveBeenCalledWith(
|
||||
expect.stringContaining(
|
||||
"GitHub releases and git tags cannot be created without this output",
|
||||
),
|
||||
@@ -141,7 +151,7 @@ describe("publish", () => {
|
||||
});
|
||||
|
||||
it("throws when the built-in publish command does not create the output file", async () => {
|
||||
await using fixture = await createFixture({
|
||||
await using fixture = await gitdir({
|
||||
"node_modules/@changesets/cli/package.json": JSON.stringify({
|
||||
name: "@changesets/cli",
|
||||
type: "module",
|
||||
@@ -154,7 +164,7 @@ describe("publish", () => {
|
||||
"package-lock.json": "",
|
||||
});
|
||||
const cwd = fixture.path;
|
||||
await initializeGitRepository(cwd);
|
||||
await updateGithubContext(cwd);
|
||||
vi.stubEnv("RUNNER_TEMP", cwd);
|
||||
|
||||
await expect(
|
||||
@@ -172,6 +182,7 @@ describe("version", () => {
|
||||
it("creates simple PR", async () => {
|
||||
await using fixture = await createSimpleProjectFixture();
|
||||
const cwd = fixture.path;
|
||||
await updateGithubContext(cwd);
|
||||
|
||||
mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({ data: [] }));
|
||||
|
||||
@@ -209,6 +220,7 @@ describe("version", () => {
|
||||
it('creates a draft PR when prDraft is "create"', async () => {
|
||||
await using fixture = await createSimpleProjectFixture();
|
||||
const cwd = fixture.path;
|
||||
await updateGithubContext(cwd);
|
||||
|
||||
mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({ data: [] }));
|
||||
|
||||
@@ -243,6 +255,7 @@ describe("version", () => {
|
||||
it("only includes bumped packages in the PR body", async () => {
|
||||
await using fixture = await createSimpleProjectFixture();
|
||||
const cwd = fixture.path;
|
||||
await updateGithubContext(cwd);
|
||||
|
||||
mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({ data: [] }));
|
||||
|
||||
@@ -276,6 +289,7 @@ describe("version", () => {
|
||||
it("doesn't include ignored package that got a dependency update in the PR body", async () => {
|
||||
await using fixture = await createIgnoredPackageFixture();
|
||||
const cwd = fixture.path;
|
||||
await updateGithubContext(cwd);
|
||||
|
||||
mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({ data: [] }));
|
||||
|
||||
@@ -309,6 +323,7 @@ describe("version", () => {
|
||||
it("does not include changelog entries if full message exceeds size limit", async () => {
|
||||
await using fixture = await createSimpleProjectFixture();
|
||||
const cwd = fixture.path;
|
||||
await updateGithubContext(cwd);
|
||||
|
||||
mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({ data: [] }));
|
||||
|
||||
@@ -366,6 +381,7 @@ fluminis divesque vulnere aquis parce lapsis rabie si visa fulmineis.
|
||||
it("does not include any release information if a message with simplified release info exceeds size limit", async () => {
|
||||
await using fixture = await createSimpleProjectFixture();
|
||||
const cwd = fixture.path;
|
||||
await updateGithubContext(cwd);
|
||||
|
||||
mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({ data: [] }));
|
||||
|
||||
@@ -423,6 +439,7 @@ fluminis divesque vulnere aquis parce lapsis rabie si visa fulmineis.
|
||||
it('updates an existing PR via GraphQL without converting it to draft when prDraft is "create"', async () => {
|
||||
await using fixture = await createSimpleProjectFixture();
|
||||
const cwd = fixture.path;
|
||||
await updateGithubContext(cwd);
|
||||
|
||||
mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({
|
||||
data: [{ number: 123, node_id: "PR_kwDOA" }],
|
||||
@@ -455,6 +472,7 @@ fluminis divesque vulnere aquis parce lapsis rabie si visa fulmineis.
|
||||
it('updates an existing PR via GraphQL and converts it to draft when prDraft is "always"', async () => {
|
||||
await using fixture = await createSimpleProjectFixture();
|
||||
const cwd = fixture.path;
|
||||
await updateGithubContext(cwd);
|
||||
|
||||
mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({
|
||||
data: [{ number: 123, node_id: "PR_kwDOA" }],
|
||||
|
||||
+3
-3
@@ -401,7 +401,7 @@ export async function runVersion({
|
||||
head: `${context.repo.owner}:${versionBranch}`,
|
||||
base: branch,
|
||||
});
|
||||
core.info(
|
||||
core.debug(
|
||||
`Existing pull requests: ${JSON.stringify(
|
||||
existingPullRequests.data,
|
||||
null,
|
||||
@@ -427,7 +427,7 @@ export async function runVersion({
|
||||
});
|
||||
|
||||
if (existingPullRequests.data.length === 0) {
|
||||
core.info("creating pull request");
|
||||
core.info("Creating pull request");
|
||||
const { data: newPullRequest } = await octokit.rest.pulls.create({
|
||||
base: branch,
|
||||
head: versionBranch,
|
||||
@@ -443,7 +443,7 @@ export async function runVersion({
|
||||
} else {
|
||||
const [pullRequest] = existingPullRequests.data;
|
||||
|
||||
core.info(`updating found pull request #${pullRequest.number}`);
|
||||
core.info(`Updating found pull request #${pullRequest.number}`);
|
||||
const convertPullRequestToDraftMutation =
|
||||
prDraft === "always"
|
||||
? `
|
||||
|
||||
@@ -4,7 +4,11 @@ import path from "node:path";
|
||||
import artifact from "@actions/artifact";
|
||||
import * as core from "@actions/core";
|
||||
import readChangesetState from "../readChangesetState.ts";
|
||||
import { execChangesetsCli, validateChangesetsCliVersion } from "../utils.ts";
|
||||
import {
|
||||
execChangesetsCli,
|
||||
getOptionalInput,
|
||||
validateChangesetsCliVersion,
|
||||
} from "../utils.ts";
|
||||
|
||||
type ModeResult =
|
||||
| {
|
||||
@@ -27,7 +31,7 @@ try {
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const cwd = process.cwd();
|
||||
const cwd = getOptionalInput("cwd") || process.cwd();
|
||||
await validateChangesetsCliVersion(cwd);
|
||||
|
||||
const result = await getMode(cwd);
|
||||
|
||||
@@ -15,8 +15,7 @@ try {
|
||||
}
|
||||
|
||||
async function main() {
|
||||
// If the user needs to change the cwd, set `working-directory` in the step instead
|
||||
const cwd = process.cwd();
|
||||
const cwd = getOptionalInput("cwd") || process.cwd();
|
||||
await validateChangesetsCliVersion(cwd);
|
||||
throwOnRemovedCommitModeInput();
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ This action versions packages and creates or updates a pull request with the cha
|
||||
| `pr-draft` | Controls draft PR behavior. Use 'create' to create new version PRs as draft, or 'always' to also convert existing version PRs back to draft when updating them. |
|
||||
| `pr-base-branch` | Sets the base branch of the PR. Defaults to `github.ref_name`. |
|
||||
| `push-with-git-cli` | Whether to use the Git CLI instead of the GitHub API to push release commits. Defaults to `false`. When using the GitHub API, commits are signed using GitHub's GPG key and attributed to the user or app that owns the `github-token`. |
|
||||
| `cwd` | The working directory to execute Changesets in. Defaults to the root of the repository. |
|
||||
|
||||
| Outputs | Description |
|
||||
| ----------- | --------------------------------------------------- |
|
||||
|
||||
@@ -34,6 +34,9 @@ inputs:
|
||||
GPG key and attributed to the user or app that owns the `github-token`.
|
||||
required: false
|
||||
default: false
|
||||
cwd:
|
||||
description: "The working directory to execute Changesets in. Defaults to the root of the repository."
|
||||
required: false
|
||||
outputs:
|
||||
pr-number:
|
||||
description: The pull request number that was created or updated
|
||||
|
||||
Reference in New Issue
Block a user