@jsdevtools/npm-publish 4.0.0 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](https://plant.treeware.earth/JS-DevTools/npm-publish)
|
|
8
8
|
|
|
9
|
-
Publish packages to npm automatically in GitHub Actions
|
|
9
|
+
Publish packages to npm automatically in GitHub Actions whenever a change to your package's `version` field is detected.
|
|
10
10
|
|
|
11
11
|
- [Change log][releases]
|
|
12
12
|
- [v3 to v4 migration guide](#v3-to-v4)
|
|
@@ -15,6 +15,37 @@ Publish packages to npm automatically in GitHub Actions by updating the version
|
|
|
15
15
|
|
|
16
16
|
[releases]: https://github.com/JS-DevTools/npm-publish/releases
|
|
17
17
|
|
|
18
|
+
## ⚠️ You probably don't need this!
|
|
19
|
+
|
|
20
|
+
This action automates a specific kind of continuous deployment to `npm`, where you want to publish whenever the `version` field in `package.json` changes on your `main` branch. If you prefer to publish on tags (for example, those created by the `npm version` command), or are using an alternative package manager like `pnpm`, you don't need this action! Simply configure `setup-node` with its `registry-url` option and call your package manager's `publish` command directly. This is more secure than relying on a third-party action like this one, and is more customizable.
|
|
21
|
+
|
|
22
|
+
```yaml
|
|
23
|
+
# Publish to npm whenever a tag is pushed
|
|
24
|
+
name: Publish to npm
|
|
25
|
+
on:
|
|
26
|
+
push:
|
|
27
|
+
tags: v*
|
|
28
|
+
jobs:
|
|
29
|
+
build:
|
|
30
|
+
runs-on: ubuntu-latest
|
|
31
|
+
permissions:
|
|
32
|
+
contents: read
|
|
33
|
+
id-token: write
|
|
34
|
+
steps:
|
|
35
|
+
- uses: actions/checkout@v5
|
|
36
|
+
- uses: actions/setup-node@v5
|
|
37
|
+
with:
|
|
38
|
+
node-version: "24"
|
|
39
|
+
registry-url: "https://registry.npmjs.org"
|
|
40
|
+
- run: npm ci
|
|
41
|
+
- run: npm test
|
|
42
|
+
- run: npm publish --provenance --ignore-scripts
|
|
43
|
+
env:
|
|
44
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
See [GitHub's Node.js publishing guide](https://docs.github.com/en/actions/tutorials/publish-packages/publish-nodejs-packages) for more details and examples.
|
|
48
|
+
|
|
18
49
|
## Features
|
|
19
50
|
|
|
20
51
|
- 🧠 **Smart**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { callNpmCli, E404,
|
|
1
|
+
import { callNpmCli, E404, EPUBLISHCONFLICT, PUBLISH, VIEW, } from "../npm/index.js";
|
|
2
2
|
import { compareVersions } from "./compare-versions.js";
|
|
3
3
|
import { getPublishArguments, getViewArguments } from "./get-arguments.js";
|
|
4
4
|
/**
|
|
@@ -36,9 +36,7 @@ export async function compareAndPublish(manifest, options, environment) {
|
|
|
36
36
|
const publishCall = (comparison.type ?? isDryRun)
|
|
37
37
|
? await callNpmCli(PUBLISH, publishArguments, cliOptions)
|
|
38
38
|
: { successData: undefined, errorCode: undefined, error: undefined };
|
|
39
|
-
if (publishCall.error &&
|
|
40
|
-
publishCall.errorCode !== EPUBLISHCONFLICT &&
|
|
41
|
-
publishCall.errorCode !== E409) {
|
|
39
|
+
if (publishCall.error && publishCall.errorCode !== EPUBLISHCONFLICT) {
|
|
42
40
|
throw publishCall.error;
|
|
43
41
|
}
|
|
44
42
|
const { successData: publishData } = publishCall;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare-and-publish.js","sourceRoot":"","sources":["../../src/compare-and-publish/compare-and-publish.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,IAAI,EACJ,
|
|
1
|
+
{"version":3,"file":"compare-and-publish.js","sourceRoot":"","sources":["../../src/compare-and-publish/compare-and-publish.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,IAAI,EACJ,gBAAgB,EAEhB,OAAO,EACP,IAAI,GACL,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,eAAe,EAA0B,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAY3E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAyB,EACzB,OAA0B,EAC1B,WAA8B;IAE9B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;IAChD,MAAM,UAAU,GAAG;QACjB,WAAW;QACX,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK;QAC1C,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC;IAEF,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACnE,IAAI,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAEjE,4EAA4E;IAC5E,2EAA2E;IAC3E,yCAAyC;IACzC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC7C,gEAAgE;QAChE,oCAAoC;QACpC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACnE,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,QAAQ,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IACtC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3E,MAAM,WAAW,GACf,CAAC,UAAU,CAAC,IAAI,IAAI,QAAQ,CAAC;QAC3B,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,UAAU,CAAC;QACzD,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAEzE,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;QACpE,MAAM,WAAW,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;IAEjD,OAAO;QACL,EAAE,EAAE,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;QAC9D,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE;QAC/B,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC/C,UAAU,EAAE,UAAU,CAAC,UAAU;KAClC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,6 @@ import type { NormalizedOptions } from "../normalize-options.js";
|
|
|
2
2
|
import {
|
|
3
3
|
callNpmCli,
|
|
4
4
|
E404,
|
|
5
|
-
E409,
|
|
6
5
|
EPUBLISHCONFLICT,
|
|
7
6
|
type NpmCliEnvironment,
|
|
8
7
|
PUBLISH,
|
|
@@ -67,11 +66,7 @@ export async function compareAndPublish(
|
|
|
67
66
|
? await callNpmCli(PUBLISH, publishArguments, cliOptions)
|
|
68
67
|
: { successData: undefined, errorCode: undefined, error: undefined };
|
|
69
68
|
|
|
70
|
-
if (
|
|
71
|
-
publishCall.error &&
|
|
72
|
-
publishCall.errorCode !== EPUBLISHCONFLICT &&
|
|
73
|
-
publishCall.errorCode !== E409
|
|
74
|
-
) {
|
|
69
|
+
if (publishCall.error && publishCall.errorCode !== EPUBLISHCONFLICT) {
|
|
75
70
|
throw publishCall.error;
|
|
76
71
|
}
|
|
77
72
|
|