mirror of
https://github.com/softprops/action-gh-release.git
synced 2026-04-13 13:58:28 +08:00
release: cut v3.0.0 for Node 24 upgrade (#670)
- feat: move action runtime to node24 and require Node >=24 - chore: bump @types/node, enable Dependabot updates, rebuild dist - cut 3.0.0 release Signed-off-by: Rui Chen <rui@chenrui.dev>
This commit is contained in:
3
.github/dependabot.yml
vendored
3
.github/dependabot.yml
vendored
@@ -12,9 +12,6 @@ updates:
|
||||
- dependency-name: node-fetch
|
||||
versions:
|
||||
- ">=3.0.0"
|
||||
- dependency-name: "@types/node"
|
||||
versions:
|
||||
- ">=22.0.0"
|
||||
commit-message:
|
||||
prefix: "chore(deps)"
|
||||
- package-ecosystem: github-actions
|
||||
|
||||
15
CHANGELOG.md
15
CHANGELOG.md
@@ -1,3 +1,18 @@
|
||||
## 3.0.0
|
||||
|
||||
`3.0.0` is a major release that moves the action runtime from Node 20 to Node 24.
|
||||
Use `v3` on GitHub-hosted runners and self-hosted fleets that already support the
|
||||
Node 24 Actions runtime. If you still need the last Node 20-compatible line, stay on
|
||||
`v2.6.2`.
|
||||
|
||||
## What's Changed
|
||||
|
||||
### Other Changes 🔄
|
||||
|
||||
* Move the action runtime and bundle target to Node 24
|
||||
* Update `@types/node` to the Node 24 line and allow future Dependabot updates
|
||||
* Keep the floating major tag on `v3`; `v2` remains pinned to the latest `2.x` release
|
||||
|
||||
## 2.6.2
|
||||
|
||||
## What's Changed
|
||||
|
||||
17
README.md
17
README.md
@@ -39,6 +39,9 @@ Typically usage of this action involves adding a step to a build that
|
||||
is gated pushes to git tags. You may find `step.if` field helpful in accomplishing this
|
||||
as it maximizes the reuse value of your workflow for non-tag pushes.
|
||||
|
||||
`v3` requires a GitHub Actions runtime that supports Node 24. If you still need the
|
||||
last Node 20-compatible line, stay on `v2.6.2`.
|
||||
|
||||
Below is a simple example of `step.if` tag gating
|
||||
|
||||
```yaml
|
||||
@@ -53,7 +56,7 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
uses: softprops/action-gh-release@v3
|
||||
if: github.ref_type == 'tag'
|
||||
```
|
||||
|
||||
@@ -74,7 +77,7 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
uses: softprops/action-gh-release@v3
|
||||
```
|
||||
|
||||
### ⬆️ Uploading release assets
|
||||
@@ -105,7 +108,7 @@ jobs:
|
||||
- name: Test
|
||||
run: cat Release.txt
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
uses: softprops/action-gh-release@v3
|
||||
if: github.ref_type == 'tag'
|
||||
with:
|
||||
files: Release.txt
|
||||
@@ -129,7 +132,7 @@ jobs:
|
||||
- name: Test
|
||||
run: cat Release.txt
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
uses: softprops/action-gh-release@v3
|
||||
if: github.ref_type == 'tag'
|
||||
with:
|
||||
files: |
|
||||
@@ -146,7 +149,7 @@ and keep the `files` patterns relative to that directory.
|
||||
|
||||
```yaml
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
uses: softprops/action-gh-release@v3
|
||||
if: github.ref_type == 'tag'
|
||||
with:
|
||||
working_directory: dist
|
||||
@@ -175,7 +178,7 @@ jobs:
|
||||
- name: Generate Changelog
|
||||
run: echo "# Good things have arrived" > ${{ github.workspace }}-CHANGELOG.txt
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
uses: softprops/action-gh-release@v3
|
||||
if: github.ref_type == 'tag'
|
||||
with:
|
||||
body_path: ${{ github.workspace }}-CHANGELOG.txt
|
||||
@@ -193,7 +196,7 @@ comparison range does not match the release series you want to publish.
|
||||
|
||||
```yaml
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
uses: softprops/action-gh-release@v3
|
||||
with:
|
||||
tag_name: stage-2026-03-15
|
||||
target_commitish: ${{ github.sha }}
|
||||
|
||||
@@ -22,13 +22,14 @@ Use this checklist when cutting a new `action-gh-release` release.
|
||||
- `npm run build`
|
||||
- `npm test`
|
||||
5. Commit the release prep.
|
||||
- Use a plain release commit message like `release 2.5.4`.
|
||||
- Use a plain release commit message like `release 3.0.0`.
|
||||
6. Create the annotated tag for the release commit.
|
||||
- Example: `git tag -a v2.5.4 -m "v2.5.4"`
|
||||
- Example: `git tag -a v3.0.0 -m "v3.0.0"`
|
||||
7. Push the commit and tag.
|
||||
- Example: `git push origin master && git push origin v2.5.4`
|
||||
- Example: `git push origin master && git push origin v3.0.0`
|
||||
8. Move the floating major tag to the new release tag.
|
||||
- For the current major line, either run `npm run updatetag` or update the script first if the major ever changes.
|
||||
- For the current major line, run `npm run updatetag` to move `v3`.
|
||||
- Keep `v2` pinned to the latest `2.x` release for consumers that still need the Node 20 runtime.
|
||||
- Verify the floating tag points at the same commit as the new full tag.
|
||||
9. Create the GitHub release from the new tag.
|
||||
- Prefer the release body from [CHANGELOG.md](CHANGELOG.md), then let GitHub append generated notes only if they add value.
|
||||
|
||||
@@ -75,7 +75,7 @@ outputs:
|
||||
assets:
|
||||
description: "JSON array containing information about each uploaded asset, in the format given [here](https://docs.github.com/en/rest/reference/repos#upload-a-release-asset--code-samples) (minus the `uploader` field)"
|
||||
runs:
|
||||
using: "node20"
|
||||
using: "node24"
|
||||
main: "dist/index.js"
|
||||
branding:
|
||||
color: "green"
|
||||
|
||||
2
dist/index.js
vendored
2
dist/index.js
vendored
File diff suppressed because one or more lines are too long
23
package-lock.json
generated
23
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "action-gh-release",
|
||||
"version": "2.6.2",
|
||||
"version": "3.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "action-gh-release",
|
||||
"version": "2.6.2",
|
||||
"version": "3.0.0",
|
||||
"dependencies": {
|
||||
"@actions/core": "^3.0.0",
|
||||
"@actions/github": "^9.1.0",
|
||||
@@ -18,7 +18,7 @@
|
||||
"devDependencies": {
|
||||
"@types/glob": "^9.0.0",
|
||||
"@types/mime-types": "^3.0.1",
|
||||
"@types/node": "^20.19.39",
|
||||
"@types/node": "^24",
|
||||
"@vitest/coverage-v8": "^4.1.4",
|
||||
"esbuild": "^0.28.0",
|
||||
"prettier": "3.8.2",
|
||||
@@ -26,6 +26,9 @@
|
||||
"typescript": "^6.0.2",
|
||||
"typescript-formatter": "^7.2.2",
|
||||
"vitest": "^4.0.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=24"
|
||||
}
|
||||
},
|
||||
"node_modules/@actions/core": {
|
||||
@@ -1209,13 +1212,13 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "20.19.39",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.39.tgz",
|
||||
"integrity": "sha512-orrrD74MBUyK8jOAD/r0+lfa1I2MO6I+vAkmAWzMYbCcgrN4lCrmK52gRFQq/JRxfYPfonkr4b0jcY7Olqdqbw==",
|
||||
"version": "24.12.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.2.tgz",
|
||||
"integrity": "sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"undici-types": "~6.21.0"
|
||||
"undici-types": "~7.16.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vitest/coverage-v8": {
|
||||
@@ -2477,9 +2480,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/undici-types": {
|
||||
"version": "6.21.0",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
|
||||
"integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
|
||||
"version": "7.16.0",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
|
||||
"integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
|
||||
13
package.json
13
package.json
@@ -1,17 +1,17 @@
|
||||
{
|
||||
"name": "action-gh-release",
|
||||
"version": "2.6.2",
|
||||
"version": "3.0.0",
|
||||
"private": true,
|
||||
"description": "GitHub Action for creating GitHub Releases",
|
||||
"main": "lib/main.js",
|
||||
"scripts": {
|
||||
"build": "esbuild src/main.ts --bundle --platform=node --format=cjs --target=node20 --outfile=dist/index.js --minify",
|
||||
"build-debug": "esbuild src/main.ts --bundle --platform=node --format=cjs --target=node20 --outfile=dist/index.js --sourcemap --keep-names",
|
||||
"build": "esbuild src/main.ts --bundle --platform=node --format=cjs --target=node24 --outfile=dist/index.js --minify",
|
||||
"build-debug": "esbuild src/main.ts --bundle --platform=node --format=cjs --target=node24 --outfile=dist/index.js --sourcemap --keep-names",
|
||||
"typecheck": "tsc --noEmit",
|
||||
"test": "vitest --coverage",
|
||||
"fmt": "prettier --write \"src/**/*.ts\" \"__tests__/**/*.ts\"",
|
||||
"fmtcheck": "prettier --check \"src/**/*.ts\" \"__tests__/**/*.ts\"",
|
||||
"updatetag": "git tag -d v2 && git push origin :v2 && git tag -a v2 -m '' && git push origin v2"
|
||||
"updatetag": "git tag -d v3 >/dev/null 2>&1 || true; git push origin :v3 >/dev/null 2>&1 || true; git tag -a v3 -m '' && git push origin v3"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -21,6 +21,9 @@
|
||||
"actions"
|
||||
],
|
||||
"author": "softprops",
|
||||
"engines": {
|
||||
"node": ">=24"
|
||||
},
|
||||
"dependencies": {
|
||||
"@actions/core": "^3.0.0",
|
||||
"@actions/github": "^9.1.0",
|
||||
@@ -32,7 +35,7 @@
|
||||
"devDependencies": {
|
||||
"@types/glob": "^9.0.0",
|
||||
"@types/mime-types": "^3.0.1",
|
||||
"@types/node": "^20.19.39",
|
||||
"@types/node": "^24",
|
||||
"@vitest/coverage-v8": "^4.1.4",
|
||||
"esbuild": "^0.28.0",
|
||||
"prettier": "3.8.2",
|
||||
|
||||
@@ -367,7 +367,7 @@ export const upload = async (
|
||||
size,
|
||||
mime,
|
||||
token: config.github_token,
|
||||
data: fh.readableWebStream({ type: 'bytes' }),
|
||||
data: fh.readableWebStream(),
|
||||
});
|
||||
} finally {
|
||||
await fh.close();
|
||||
|
||||
Reference in New Issue
Block a user