test(index): forced plugins to use semantic-release beta
which deduped env-ci to the esm-only version, allowing test double to stub properly
This commit is contained in:
parent
9eab1adb9d
commit
f7c85e3fff
4
index.js
4
index.js
@ -36,8 +36,8 @@ async function terminalOutput(text) {
|
||||
|
||||
/* eslint complexity: off */
|
||||
async function run(context, plugins) {
|
||||
const {cwd, env, options, logger} = context;
|
||||
const {isCi, branch, prBranch, isPr} = context.envCi;
|
||||
const {cwd, env, options, logger, envCi} = context;
|
||||
const {isCi, branch, prBranch, isPr} = envCi;
|
||||
const ciBranch = isPr ? prBranch : branch;
|
||||
|
||||
if (!isCi && !options.dryRun && !options.noCi) {
|
||||
|
540
package-lock.json
generated
540
package-lock.json
generated
@ -6114,26 +6114,6 @@
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fromentries": {
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
|
||||
"integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
],
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/fs-constants": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
||||
@ -12430,9 +12410,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release": {
|
||||
"version": "19.0.3",
|
||||
"resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-19.0.3.tgz",
|
||||
"integrity": "sha512-HaFbydST1cDKZHuFZxB8DTrBLJVK/AnDExpK0s3EqLIAAUAHUgnd+VSJCUtTYQKkAkauL8G9CucODrVCc7BuAA==",
|
||||
"version": "20.0.0-beta.1",
|
||||
"resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-20.0.0-beta.1.tgz",
|
||||
"integrity": "sha512-lpk+KQ1dFBcqviuGopQ8YEmLJVRMTQYMUJykCRq0CqYpDyUP5+go9FSU60niJmj1FFxXIMxa2Lo3C7AaPYBskg==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@semantic-release/commit-analyzer": "^9.0.2",
|
||||
@ -12440,29 +12420,29 @@
|
||||
"@semantic-release/github": "^8.0.0",
|
||||
"@semantic-release/npm": "^9.0.0",
|
||||
"@semantic-release/release-notes-generator": "^10.0.0",
|
||||
"aggregate-error": "^3.0.0",
|
||||
"aggregate-error": "^4.0.1",
|
||||
"cosmiconfig": "^7.0.0",
|
||||
"debug": "^4.0.0",
|
||||
"env-ci": "^5.0.0",
|
||||
"execa": "^5.0.0",
|
||||
"figures": "^3.0.0",
|
||||
"find-versions": "^4.0.0",
|
||||
"env-ci": "8.0.0-beta.1",
|
||||
"execa": "^6.1.0",
|
||||
"figures": "^5.0.0",
|
||||
"find-versions": "^5.1.0",
|
||||
"get-stream": "^6.0.0",
|
||||
"git-log-parser": "^1.2.0",
|
||||
"hook-std": "^2.0.0",
|
||||
"hosted-git-info": "^4.0.0",
|
||||
"lodash": "^4.17.21",
|
||||
"marked": "^4.0.10",
|
||||
"marked-terminal": "^5.0.0",
|
||||
"hook-std": "^3.0.0",
|
||||
"hosted-git-info": "^5.1.0",
|
||||
"lodash-es": "^4.17.21",
|
||||
"marked": "^4.1.0",
|
||||
"marked-terminal": "^5.1.1",
|
||||
"micromatch": "^4.0.2",
|
||||
"p-each-series": "^2.1.0",
|
||||
"p-reduce": "^2.0.0",
|
||||
"read-pkg-up": "^7.0.0",
|
||||
"p-each-series": "^3.0.0",
|
||||
"p-reduce": "^3.0.0",
|
||||
"read-pkg-up": "^9.1.0",
|
||||
"resolve-from": "^5.0.0",
|
||||
"semver": "^7.3.2",
|
||||
"semver-diff": "^3.1.1",
|
||||
"signale": "^1.2.1",
|
||||
"yargs": "^16.2.0"
|
||||
"yargs": "^17.5.1"
|
||||
},
|
||||
"bin": {
|
||||
"semantic-release": "bin/semantic-release.js"
|
||||
@ -12471,270 +12451,6 @@
|
||||
"node": ">=16 || ^14.17"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/aggregate-error": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
|
||||
"integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"clean-stack": "^2.0.0",
|
||||
"indent-string": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/clean-stack": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
|
||||
"integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/cliui": {
|
||||
"version": "7.0.4",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
|
||||
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"string-width": "^4.2.0",
|
||||
"strip-ansi": "^6.0.0",
|
||||
"wrap-ansi": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/env-ci": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.5.0.tgz",
|
||||
"integrity": "sha512-o0JdWIbOLP+WJKIUt36hz1ImQQFuN92nhsfTkHHap+J8CiI8WgGpH/a9jEGHh4/TU5BUUGjlnKXNoDb57+ne+A==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"execa": "^5.0.0",
|
||||
"fromentries": "^1.3.2",
|
||||
"java-properties": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.17"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/execa": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
|
||||
"integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"cross-spawn": "^7.0.3",
|
||||
"get-stream": "^6.0.0",
|
||||
"human-signals": "^2.1.0",
|
||||
"is-stream": "^2.0.0",
|
||||
"merge-stream": "^2.0.0",
|
||||
"npm-run-path": "^4.0.1",
|
||||
"onetime": "^5.1.2",
|
||||
"signal-exit": "^3.0.3",
|
||||
"strip-final-newline": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sindresorhus/execa?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/figures": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
|
||||
"integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"escape-string-regexp": "^1.0.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/find-versions": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz",
|
||||
"integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"semver-regex": "^3.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/hook-std": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/hook-std/-/hook-std-2.0.0.tgz",
|
||||
"integrity": "sha512-zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/hosted-git-info": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
|
||||
"integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"lru-cache": "^6.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/human-signals": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
|
||||
"integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=10.17.0"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/is-stream": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
|
||||
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/mimic-fn": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
|
||||
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/npm-run-path": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
|
||||
"integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"path-key": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/onetime": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
|
||||
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"mimic-fn": "^2.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/p-each-series": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz",
|
||||
"integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/p-reduce": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz",
|
||||
"integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/read-pkg-up": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
|
||||
"integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"find-up": "^4.1.0",
|
||||
"read-pkg": "^5.2.0",
|
||||
"type-fest": "^0.8.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/semver-regex": {
|
||||
"version": "3.1.4",
|
||||
"resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz",
|
||||
"integrity": "sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/strip-final-newline": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
|
||||
"integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/type-fest": {
|
||||
"version": "0.8.1",
|
||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
|
||||
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/semantic-release/node_modules/yargs": {
|
||||
"version": "16.2.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
|
||||
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"cliui": "^7.0.2",
|
||||
"escalade": "^3.1.1",
|
||||
"get-caller-file": "^2.0.5",
|
||||
"require-directory": "^2.1.1",
|
||||
"string-width": "^4.2.0",
|
||||
"y18n": "^5.0.5",
|
||||
"yargs-parser": "^20.2.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/semver": {
|
||||
"version": "7.3.5",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
|
||||
@ -20333,12 +20049,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"fromentries": {
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
|
||||
"integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
|
||||
"peer": true
|
||||
},
|
||||
"fs-constants": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
||||
@ -24844,9 +24554,9 @@
|
||||
}
|
||||
},
|
||||
"semantic-release": {
|
||||
"version": "19.0.3",
|
||||
"resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-19.0.3.tgz",
|
||||
"integrity": "sha512-HaFbydST1cDKZHuFZxB8DTrBLJVK/AnDExpK0s3EqLIAAUAHUgnd+VSJCUtTYQKkAkauL8G9CucODrVCc7BuAA==",
|
||||
"version": "20.0.0-beta.1",
|
||||
"resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-20.0.0-beta.1.tgz",
|
||||
"integrity": "sha512-lpk+KQ1dFBcqviuGopQ8YEmLJVRMTQYMUJykCRq0CqYpDyUP5+go9FSU60niJmj1FFxXIMxa2Lo3C7AaPYBskg==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"@semantic-release/commit-analyzer": "^9.0.2",
|
||||
@ -24854,211 +24564,29 @@
|
||||
"@semantic-release/github": "^8.0.0",
|
||||
"@semantic-release/npm": "^9.0.0",
|
||||
"@semantic-release/release-notes-generator": "^10.0.0",
|
||||
"aggregate-error": "^3.0.0",
|
||||
"aggregate-error": "^4.0.1",
|
||||
"cosmiconfig": "^7.0.0",
|
||||
"debug": "^4.0.0",
|
||||
"env-ci": "^5.0.0",
|
||||
"execa": "^5.0.0",
|
||||
"figures": "^3.0.0",
|
||||
"find-versions": "^4.0.0",
|
||||
"env-ci": "8.0.0-beta.1",
|
||||
"execa": "^6.1.0",
|
||||
"figures": "^5.0.0",
|
||||
"find-versions": "^5.1.0",
|
||||
"get-stream": "^6.0.0",
|
||||
"git-log-parser": "^1.2.0",
|
||||
"hook-std": "^2.0.0",
|
||||
"hosted-git-info": "^4.0.0",
|
||||
"lodash": "^4.17.21",
|
||||
"marked": "^4.0.10",
|
||||
"marked-terminal": "^5.0.0",
|
||||
"hook-std": "^3.0.0",
|
||||
"hosted-git-info": "^5.1.0",
|
||||
"lodash-es": "^4.17.21",
|
||||
"marked": "^4.1.0",
|
||||
"marked-terminal": "^5.1.1",
|
||||
"micromatch": "^4.0.2",
|
||||
"p-each-series": "^2.1.0",
|
||||
"p-reduce": "^2.0.0",
|
||||
"read-pkg-up": "^7.0.0",
|
||||
"p-each-series": "^3.0.0",
|
||||
"p-reduce": "^3.0.0",
|
||||
"read-pkg-up": "^9.1.0",
|
||||
"resolve-from": "^5.0.0",
|
||||
"semver": "^7.3.2",
|
||||
"semver-diff": "^3.1.1",
|
||||
"signale": "^1.2.1",
|
||||
"yargs": "^16.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"aggregate-error": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
|
||||
"integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"clean-stack": "^2.0.0",
|
||||
"indent-string": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"clean-stack": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
|
||||
"integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
|
||||
"peer": true
|
||||
},
|
||||
"cliui": {
|
||||
"version": "7.0.4",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
|
||||
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"string-width": "^4.2.0",
|
||||
"strip-ansi": "^6.0.0",
|
||||
"wrap-ansi": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"env-ci": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.5.0.tgz",
|
||||
"integrity": "sha512-o0JdWIbOLP+WJKIUt36hz1ImQQFuN92nhsfTkHHap+J8CiI8WgGpH/a9jEGHh4/TU5BUUGjlnKXNoDb57+ne+A==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"execa": "^5.0.0",
|
||||
"fromentries": "^1.3.2",
|
||||
"java-properties": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"execa": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
|
||||
"integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"cross-spawn": "^7.0.3",
|
||||
"get-stream": "^6.0.0",
|
||||
"human-signals": "^2.1.0",
|
||||
"is-stream": "^2.0.0",
|
||||
"merge-stream": "^2.0.0",
|
||||
"npm-run-path": "^4.0.1",
|
||||
"onetime": "^5.1.2",
|
||||
"signal-exit": "^3.0.3",
|
||||
"strip-final-newline": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"figures": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
|
||||
"integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"escape-string-regexp": "^1.0.5"
|
||||
}
|
||||
},
|
||||
"find-versions": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz",
|
||||
"integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"semver-regex": "^3.1.2"
|
||||
}
|
||||
},
|
||||
"hook-std": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/hook-std/-/hook-std-2.0.0.tgz",
|
||||
"integrity": "sha512-zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g==",
|
||||
"peer": true
|
||||
},
|
||||
"hosted-git-info": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
|
||||
"integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"lru-cache": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"human-signals": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
|
||||
"integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
|
||||
"peer": true
|
||||
},
|
||||
"is-stream": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
|
||||
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
|
||||
"peer": true
|
||||
},
|
||||
"mimic-fn": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
|
||||
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
|
||||
"peer": true
|
||||
},
|
||||
"npm-run-path": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
|
||||
"integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"path-key": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"onetime": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
|
||||
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"mimic-fn": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"p-each-series": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz",
|
||||
"integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==",
|
||||
"peer": true
|
||||
},
|
||||
"p-reduce": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz",
|
||||
"integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==",
|
||||
"peer": true
|
||||
},
|
||||
"read-pkg-up": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
|
||||
"integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"find-up": "^4.1.0",
|
||||
"read-pkg": "^5.2.0",
|
||||
"type-fest": "^0.8.1"
|
||||
}
|
||||
},
|
||||
"semver-regex": {
|
||||
"version": "3.1.4",
|
||||
"resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz",
|
||||
"integrity": "sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA==",
|
||||
"peer": true
|
||||
},
|
||||
"strip-final-newline": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
|
||||
"integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
|
||||
"peer": true
|
||||
},
|
||||
"type-fest": {
|
||||
"version": "0.8.1",
|
||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
|
||||
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
|
||||
"peer": true
|
||||
},
|
||||
"yargs": {
|
||||
"version": "16.2.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
|
||||
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"cliui": "^7.0.2",
|
||||
"escalade": "^3.1.1",
|
||||
"get-caller-file": "^2.0.5",
|
||||
"require-directory": "^2.1.1",
|
||||
"string-width": "^4.2.0",
|
||||
"y18n": "^5.0.5",
|
||||
"yargs-parser": "^20.2.2"
|
||||
}
|
||||
}
|
||||
"yargs": "^17.5.1"
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
|
@ -75,6 +75,9 @@
|
||||
"testdouble": "3.16.6",
|
||||
"xo": "0.32.1"
|
||||
},
|
||||
"overrides": {
|
||||
"semantic-release": "20.0.0-beta.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16 || ^14.17"
|
||||
},
|
||||
|
@ -125,7 +125,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
publish: [publish, pluginNoop],
|
||||
success,
|
||||
};
|
||||
const envCi = {branch: 'master', isCi: true, isPr: false};
|
||||
const envCiResults = {branch: 'master', isCi: true, isPr: false};
|
||||
|
||||
const releases = [
|
||||
{
|
||||
@ -143,7 +143,8 @@ test('Plugins are called with expected values', async (t) => {
|
||||
];
|
||||
|
||||
await td.replaceEsm('../lib/get-logger.js', null, () => t.context.logger);
|
||||
await td.replaceEsm('env-ci', null, () => envCi);
|
||||
const envCi = (await td.replaceEsm('env-ci')).default;
|
||||
td.when(envCi({env, cwd})).thenReturn(envCiResults);
|
||||
const semanticRelease = (await import('../index.js')).default;
|
||||
const result = await semanticRelease(options, {
|
||||
cwd,
|
||||
@ -159,7 +160,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
t.deepEqual(verifyConditions1.args[0][1].branch, branch);
|
||||
t.deepEqual(verifyConditions1.args[0][1].branches, branches);
|
||||
t.deepEqual(verifyConditions1.args[0][1].logger, t.context.logger);
|
||||
t.deepEqual(verifyConditions1.args[0][1].envCi, envCi);
|
||||
t.deepEqual(verifyConditions1.args[0][1].envCi, envCiResults);
|
||||
t.is(verifyConditions2.callCount, 1);
|
||||
t.deepEqual(verifyConditions2.args[0][0], config);
|
||||
t.deepEqual(verifyConditions2.args[0][1].cwd, cwd);
|
||||
@ -167,7 +168,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
t.deepEqual(verifyConditions2.args[0][1].branch, branch);
|
||||
t.deepEqual(verifyConditions2.args[0][1].branches, branches);
|
||||
t.deepEqual(verifyConditions2.args[0][1].logger, t.context.logger);
|
||||
t.deepEqual(verifyConditions2.args[0][1].envCi, envCi);
|
||||
t.deepEqual(verifyConditions2.args[0][1].envCi, envCiResults);
|
||||
|
||||
t.is(generateNotes1.callCount, 2);
|
||||
t.is(generateNotes2.callCount, 2);
|
||||
@ -189,7 +190,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
gitTag: 'v1.0.0',
|
||||
name: 'v1.0.0',
|
||||
});
|
||||
t.deepEqual(generateNotes2.args[0][1].envCi, envCi);
|
||||
t.deepEqual(generateNotes2.args[0][1].envCi, envCiResults);
|
||||
|
||||
t.deepEqual(generateNotes2.args[0][0], config);
|
||||
t.deepEqual(generateNotes2.args[0][1].options, options);
|
||||
@ -208,7 +209,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
name: 'v1.0.0',
|
||||
notes: notes1,
|
||||
});
|
||||
t.deepEqual(generateNotes2.args[0][1].envCi, envCi);
|
||||
t.deepEqual(generateNotes2.args[0][1].envCi, envCiResults);
|
||||
|
||||
t.deepEqual(generateNotes3.args[0][0], config);
|
||||
t.deepEqual(generateNotes3.args[0][1].options, options);
|
||||
@ -227,7 +228,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
name: 'v1.0.0',
|
||||
notes: `${notes1}\n\n${notes2}`,
|
||||
});
|
||||
t.deepEqual(generateNotes3.args[0][1].envCi, envCi);
|
||||
t.deepEqual(generateNotes3.args[0][1].envCi, envCiResults);
|
||||
|
||||
branch.tags.push({
|
||||
version: '1.0.0',
|
||||
@ -255,7 +256,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
});
|
||||
t.deepEqual(addChannel.args[0][1].commits[0].hash, commits[1].hash);
|
||||
t.deepEqual(addChannel.args[0][1].commits[0].message, commits[1].message);
|
||||
t.deepEqual(addChannel.args[0][1].envCi, envCi);
|
||||
t.deepEqual(addChannel.args[0][1].envCi, envCiResults);
|
||||
|
||||
t.is(analyzeCommits.callCount, 1);
|
||||
t.deepEqual(analyzeCommits.args[0][0], config);
|
||||
@ -266,7 +267,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
t.deepEqual(analyzeCommits.args[0][1].lastRelease, lastRelease);
|
||||
t.deepEqual(analyzeCommits.args[0][1].commits[0].hash, commits[0].hash);
|
||||
t.deepEqual(analyzeCommits.args[0][1].commits[0].message, commits[0].message);
|
||||
t.deepEqual(analyzeCommits.args[0][1].envCi, envCi);
|
||||
t.deepEqual(analyzeCommits.args[0][1].envCi, envCiResults);
|
||||
|
||||
t.is(verifyRelease.callCount, 1);
|
||||
t.deepEqual(verifyRelease.args[0][0], config);
|
||||
@ -278,7 +279,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
t.deepEqual(verifyRelease.args[0][1].commits[0].hash, commits[0].hash);
|
||||
t.deepEqual(verifyRelease.args[0][1].commits[0].message, commits[0].message);
|
||||
t.deepEqual(verifyRelease.args[0][1].nextRelease, nextRelease);
|
||||
t.deepEqual(verifyRelease.args[0][1].envCi, envCi);
|
||||
t.deepEqual(verifyRelease.args[0][1].envCi, envCiResults);
|
||||
|
||||
t.deepEqual(generateNotes1.args[1][0], config);
|
||||
t.deepEqual(generateNotes1.args[1][1].options, options);
|
||||
@ -289,7 +290,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
t.deepEqual(generateNotes1.args[1][1].commits[0].hash, commits[0].hash);
|
||||
t.deepEqual(generateNotes1.args[1][1].commits[0].message, commits[0].message);
|
||||
t.deepEqual(generateNotes1.args[1][1].nextRelease, nextRelease);
|
||||
t.deepEqual(generateNotes1.args[1][1].envCi, envCi);
|
||||
t.deepEqual(generateNotes1.args[1][1].envCi, envCiResults);
|
||||
|
||||
t.deepEqual(generateNotes2.args[1][0], config);
|
||||
t.deepEqual(generateNotes2.args[1][1].options, options);
|
||||
@ -300,7 +301,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
t.deepEqual(generateNotes2.args[1][1].commits[0].hash, commits[0].hash);
|
||||
t.deepEqual(generateNotes2.args[1][1].commits[0].message, commits[0].message);
|
||||
t.deepEqual(generateNotes2.args[1][1].nextRelease, {...nextRelease, notes: notes1});
|
||||
t.deepEqual(generateNotes2.args[1][1].envCi, envCi);
|
||||
t.deepEqual(generateNotes2.args[1][1].envCi, envCiResults);
|
||||
|
||||
t.deepEqual(generateNotes3.args[1][0], config);
|
||||
t.deepEqual(generateNotes3.args[1][1].options, options);
|
||||
@ -311,7 +312,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
t.deepEqual(generateNotes3.args[1][1].commits[0].hash, commits[0].hash);
|
||||
t.deepEqual(generateNotes3.args[1][1].commits[0].message, commits[0].message);
|
||||
t.deepEqual(generateNotes3.args[1][1].nextRelease, {...nextRelease, notes: `${notes1}\n\n${notes2}`});
|
||||
t.deepEqual(generateNotes3.args[1][1].envCi, envCi);
|
||||
t.deepEqual(generateNotes3.args[1][1].envCi, envCiResults);
|
||||
|
||||
t.is(prepare.callCount, 1);
|
||||
t.deepEqual(prepare.args[0][0], config);
|
||||
@ -323,7 +324,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
t.deepEqual(prepare.args[0][1].commits[0].hash, commits[0].hash);
|
||||
t.deepEqual(prepare.args[0][1].commits[0].message, commits[0].message);
|
||||
t.deepEqual(prepare.args[0][1].nextRelease, {...nextRelease, notes: `${notes1}\n\n${notes2}\n\n${notes3}`});
|
||||
t.deepEqual(prepare.args[0][1].envCi, envCi);
|
||||
t.deepEqual(prepare.args[0][1].envCi, envCiResults);
|
||||
|
||||
t.is(publish.callCount, 1);
|
||||
t.deepEqual(publish.args[0][0], config);
|
||||
@ -335,7 +336,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
t.deepEqual(publish.args[0][1].commits[0].hash, commits[0].hash);
|
||||
t.deepEqual(publish.args[0][1].commits[0].message, commits[0].message);
|
||||
t.deepEqual(publish.args[0][1].nextRelease, {...nextRelease, notes: `${notes1}\n\n${notes2}\n\n${notes3}`});
|
||||
t.deepEqual(publish.args[0][1].envCi, envCi);
|
||||
t.deepEqual(publish.args[0][1].envCi, envCiResults);
|
||||
|
||||
t.is(success.callCount, 2);
|
||||
t.deepEqual(success.args[0][0], config);
|
||||
@ -356,7 +357,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
notes: `${notes1}\n\n${notes2}\n\n${notes3}`,
|
||||
});
|
||||
t.deepEqual(success.args[0][1].releases, [releases[0]]);
|
||||
t.deepEqual(success.args[0][1].envCi, envCi);
|
||||
t.deepEqual(success.args[0][1].envCi, envCiResults);
|
||||
|
||||
t.deepEqual(success.args[1][0], config);
|
||||
t.deepEqual(success.args[1][1].options, options);
|
||||
@ -368,7 +369,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
t.deepEqual(success.args[1][1].commits[0].message, commits[0].message);
|
||||
t.deepEqual(success.args[1][1].nextRelease, {...nextRelease, notes: `${notes1}\n\n${notes2}\n\n${notes3}`});
|
||||
t.deepEqual(success.args[1][1].releases, [releases[1], releases[2]]);
|
||||
t.deepEqual(success.args[1][1].envCi, envCi);
|
||||
t.deepEqual(success.args[1][1].envCi, envCiResults);
|
||||
|
||||
t.deepEqual(result, {
|
||||
lastRelease,
|
||||
@ -388,7 +389,7 @@ test('Plugins are called with expected values', async (t) => {
|
||||
t.is(env.GIT_COMMITTER_EMAIL, COMMIT_EMAIL);
|
||||
});
|
||||
|
||||
test('Use custom tag format', async (t) => {
|
||||
test.serial('Use custom tag format', async (t) => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
await gitCommits(['First'], {cwd});
|
||||
await gitTagVersion('test-1.0.0', undefined, {cwd});
|
||||
@ -434,7 +435,7 @@ test('Use custom tag format', async (t) => {
|
||||
t.is(await gitRemoteTagHead(repositoryUrl, nextRelease.gitTag, {cwd}), nextRelease.gitHead);
|
||||
});
|
||||
|
||||
test('Use new gitHead, and recreate release notes if a prepare plugin create a commit', async (t) => {
|
||||
test.serial('Use new gitHead, and recreate release notes if a prepare plugin create a commit', async (t) => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
// Add commits to the master branch
|
||||
@ -507,7 +508,7 @@ test('Use new gitHead, and recreate release notes if a prepare plugin create a c
|
||||
t.is(await gitRemoteTagHead(repositoryUrl, nextRelease.gitTag, {cwd}), commits[0].hash);
|
||||
});
|
||||
|
||||
test('Make a new release when a commit is forward-ported to an upper branch', async (t) => {
|
||||
test.serial('Make a new release when a commit is forward-ported to an upper branch', async (t) => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
await gitCommits(['feat: initial release'], {cwd});
|
||||
await gitTagVersion('v1.0.0', undefined, {cwd});
|
||||
@ -553,7 +554,7 @@ test('Make a new release when a commit is forward-ported to an upper branch', as
|
||||
t.is(success.callCount, 1);
|
||||
});
|
||||
|
||||
test('Publish a pre-release version', async (t) => {
|
||||
test.serial('Publish a pre-release version', async (t) => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
await gitCommits(['feat: initial commit'], {cwd});
|
||||
await gitTagVersion('v1.0.0', undefined, {cwd});
|
||||
@ -575,8 +576,10 @@ test('Publish a pre-release version', async (t) => {
|
||||
fail: stub().resolves(),
|
||||
};
|
||||
|
||||
const env = {};
|
||||
await td.replaceEsm('../lib/get-logger.js', null, () => t.context.logger);
|
||||
await td.replaceEsm('env-ci', null, () => ({isCi: true, branch: 'beta', isPr: false}));
|
||||
const envCi = (await td.replaceEsm('env-ci')).default;
|
||||
td.when(envCi({env, cwd})).thenReturn({isCi: true, branch: 'beta', isPr: false});
|
||||
const semanticRelease = (await import('../index.js')).default;
|
||||
let {releases} = await semanticRelease(options, {cwd, env: {}, stdout: {write: () => {}}, stderr: {write: () => {}}});
|
||||
|
||||
@ -588,7 +591,7 @@ test('Publish a pre-release version', async (t) => {
|
||||
await gitCommits(['fix: a fix'], {cwd});
|
||||
({releases} = await semanticRelease(options, {
|
||||
cwd,
|
||||
env: {},
|
||||
env,
|
||||
stdout: {write: () => {}},
|
||||
stderr: {write: () => {}},
|
||||
}));
|
||||
@ -599,7 +602,7 @@ test('Publish a pre-release version', async (t) => {
|
||||
t.is(await gitGetNote('v1.1.0-beta.2', {cwd}), '{"channels":["beta"]}');
|
||||
});
|
||||
|
||||
test('Publish releases from different branch on the same channel', async (t) => {
|
||||
test.serial('Publish releases from different branch on the same channel', async (t) => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
await gitCommits(['feat: initial commit'], {cwd});
|
||||
await gitTagVersion('v1.0.0', undefined, {cwd});
|
||||
@ -627,10 +630,12 @@ test('Publish releases from different branch on the same channel', async (t) =>
|
||||
fail: stub().resolves(),
|
||||
};
|
||||
|
||||
const env = {};
|
||||
await td.replaceEsm('../lib/get-logger.js', null, () => t.context.logger);
|
||||
await td.replaceEsm('env-ci', null, () => ({isCi: true, branch: 'next', isPr: false}));
|
||||
const envCi = (await td.replaceEsm('env-ci')).default;
|
||||
td.when(envCi({env, cwd})).thenReturn({isCi: true, branch: 'next', isPr: false});
|
||||
let semanticRelease = (await import('../index.js')).default;
|
||||
let {releases} = await semanticRelease(options, {cwd, env: {}, stdout: {write: () => {}}, stderr: {write: () => {}}});
|
||||
let {releases} = await semanticRelease(options, {cwd, env, stdout: {write: () => {}}, stderr: {write: () => {}}});
|
||||
|
||||
t.is(releases.length, 1);
|
||||
t.is(releases[0].version, '1.1.0');
|
||||
@ -639,7 +644,7 @@ test('Publish releases from different branch on the same channel', async (t) =>
|
||||
await gitCommits(['fix: a fix'], {cwd});
|
||||
({releases} = await semanticRelease(options, {
|
||||
cwd,
|
||||
env: {},
|
||||
env,
|
||||
stdout: {write: () => {}},
|
||||
stderr: {write: () => {}},
|
||||
}));
|
||||
@ -660,7 +665,7 @@ test('Publish releases from different branch on the same channel', async (t) =>
|
||||
t.is(addChannel.callCount, 0);
|
||||
});
|
||||
|
||||
test('Publish pre-releases the same channel as regular releases', async (t) => {
|
||||
test.serial('Publish pre-releases the same channel as regular releases', async (t) => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
await gitCommits(['feat: initial commit'], {cwd});
|
||||
await gitTagVersion('v1.0.0', undefined, {cwd});
|
||||
@ -685,10 +690,12 @@ test('Publish pre-releases the same channel as regular releases', async (t) => {
|
||||
fail: stub().resolves(),
|
||||
};
|
||||
|
||||
const env = {};
|
||||
await td.replaceEsm('../lib/get-logger.js', null, () => t.context.logger);
|
||||
await td.replaceEsm('env-ci', null, () => ({isCi: true, branch: 'beta', isPr: false}));
|
||||
const envCi = (await td.replaceEsm('env-ci')).default;
|
||||
td.when(envCi({cwd, env})).thenReturn({isCi: true, branch: 'beta', isPr: false});
|
||||
const semanticRelease = (await import('../index.js')).default;
|
||||
let {releases} = await semanticRelease(options, {cwd, env: {}, stdout: {write: () => {}}, stderr: {write: () => {}}});
|
||||
let {releases} = await semanticRelease(options, {cwd, env, stdout: {write: () => {}}, stderr: {write: () => {}}});
|
||||
|
||||
t.is(releases.length, 1);
|
||||
t.is(releases[0].version, '1.1.0-beta.1');
|
||||
@ -697,7 +704,7 @@ test('Publish pre-releases the same channel as regular releases', async (t) => {
|
||||
await gitCommits(['fix: a fix'], {cwd});
|
||||
({releases} = await semanticRelease(options, {
|
||||
cwd,
|
||||
env: {},
|
||||
env,
|
||||
stdout: {write: () => {}},
|
||||
stderr: {write: () => {}},
|
||||
}));
|
||||
@ -707,7 +714,7 @@ test('Publish pre-releases the same channel as regular releases', async (t) => {
|
||||
t.is(releases[0].gitTag, 'v1.1.0-beta.2');
|
||||
});
|
||||
|
||||
test('Do not add pre-releases to a different channel', async (t) => {
|
||||
test.serial('Do not add pre-releases to a different channel', async (t) => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
await gitCommits(['feat: initial release'], {cwd});
|
||||
await gitTagVersion('v1.0.0', undefined, {cwd});
|
||||
@ -750,10 +757,12 @@ test('Do not add pre-releases to a different channel', async (t) => {
|
||||
success,
|
||||
};
|
||||
|
||||
const env = {};
|
||||
await td.replaceEsm('../lib/get-logger.js', null, () => t.context.logger);
|
||||
await td.replaceEsm('env-ci', null, () => ({isCi: true, branch: 'master', isPr: false}));
|
||||
const envCi = (await td.replaceEsm('env-ci')).default;
|
||||
td.when(envCi({cwd, env})).thenReturn({isCi: true, branch: 'master', isPr: false});
|
||||
const semanticRelease = (await import('../index.js')).default;
|
||||
t.truthy(await semanticRelease(options, {cwd, env: {}, stdout: {write: () => {}}, stderr: {write: () => {}}}));
|
||||
t.truthy(await semanticRelease(options, {cwd, env, stdout: {write: () => {}}, stderr: {write: () => {}}}));
|
||||
|
||||
t.is(addChannel.callCount, 0);
|
||||
});
|
||||
@ -818,10 +827,12 @@ async function addChannelMacro(t, mergeFunction) {
|
||||
gitHead: commits[2].hash,
|
||||
};
|
||||
|
||||
const env = {};
|
||||
await td.replaceEsm('../lib/get-logger.js', null, () => t.context.logger);
|
||||
await td.replaceEsm('env-ci', null, () => ({isCi: true, branch: 'master', isPr: false}));
|
||||
const envCi = (await td.replaceEsm('env-ci')).default;
|
||||
td.when(envCi({env, cwd})).thenReturn({isCi: true, branch: 'master', isPr: false});
|
||||
const semanticRelease = (await import('../index.js')).default;
|
||||
const result = await semanticRelease(options, {cwd, env: {}, stdout: {write: () => {}}, stderr: {write: () => {}}});
|
||||
const result = await semanticRelease(options, {cwd, env, stdout: {write: () => {}}, stderr: {write: () => {}}});
|
||||
|
||||
t.deepEqual(result.releases, [
|
||||
{...nextRelease, ...release1, notes, pluginName: '[Function: functionStub]'},
|
||||
@ -835,11 +846,11 @@ async function addChannelMacro(t, mergeFunction) {
|
||||
|
||||
addChannelMacro.title = (providedTitle) => `Add version to a channel after a merge (${providedTitle})`;
|
||||
|
||||
test('fast-forward', addChannelMacro, mergeFf);
|
||||
test('non fast-forward', addChannelMacro, merge);
|
||||
test('rebase', addChannelMacro, rebase);
|
||||
test.serial('fast-forward', addChannelMacro, mergeFf);
|
||||
test.serial('non fast-forward', addChannelMacro, merge);
|
||||
test.serial('rebase', addChannelMacro, rebase);
|
||||
|
||||
test('Call all "success" plugins even if one errors out', async (t) => {
|
||||
test.serial('Call all "success" plugins even if one errors out', async (t) => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
// Add commits to the master branch
|
||||
@ -884,12 +895,14 @@ test('Call all "success" plugins even if one errors out', async (t) => {
|
||||
success: [success1, success2],
|
||||
};
|
||||
|
||||
const env = {};
|
||||
await td.replaceEsm('../lib/get-logger.js', null, () => t.context.logger);
|
||||
await td.replaceEsm('env-ci', null, () => ({isCi: true, branch: 'master', isPr: false}));
|
||||
const envCi = (await td.replaceEsm('env-ci')).default;
|
||||
td.when(envCi({cwd, env})).thenReturn({isCi: true, branch: 'master', isPr: false});
|
||||
const semanticRelease = (await import('../index.js')).default;
|
||||
|
||||
await t.throwsAsync(
|
||||
semanticRelease(options, {cwd, env: {}, stdout: new WritableStreamBuffer(), stderr: new WritableStreamBuffer()})
|
||||
semanticRelease(options, {cwd, env, stdout: new WritableStreamBuffer(), stderr: new WritableStreamBuffer()})
|
||||
);
|
||||
|
||||
t.is(success1.callCount, 1);
|
||||
@ -904,7 +917,7 @@ test('Call all "success" plugins even if one errors out', async (t) => {
|
||||
]);
|
||||
});
|
||||
|
||||
test('Log all "verifyConditions" errors', async (t) => {
|
||||
test.serial('Log all "verifyConditions" errors', async (t) => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
// Add commits to the master branch
|
||||
@ -934,7 +947,7 @@ test('Log all "verifyConditions" errors', async (t) => {
|
||||
const errors = [
|
||||
...(await t.throwsAsync(
|
||||
semanticRelease(options, {cwd, env: {}, stdout: new WritableStreamBuffer(), stderr: new WritableStreamBuffer()})
|
||||
)),
|
||||
)).errors,
|
||||
];
|
||||
|
||||
t.deepEqual(sortBy(errors, ['message']), sortBy([error1, error2, error3], ['message']));
|
||||
@ -949,7 +962,7 @@ test('Log all "verifyConditions" errors', async (t) => {
|
||||
t.deepEqual(fail.args[0][1].errors, [error2, error3]);
|
||||
});
|
||||
|
||||
test('Log all "verifyRelease" errors', async (t) => {
|
||||
test.serial('Log all "verifyRelease" errors', async (t) => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
// Add commits to the master branch
|
||||
@ -978,7 +991,7 @@ test('Log all "verifyRelease" errors', async (t) => {
|
||||
const errors = [
|
||||
...(await t.throwsAsync(
|
||||
semanticRelease(options, {cwd, env: {}, stdout: new WritableStreamBuffer(), stderr: new WritableStreamBuffer()})
|
||||
)),
|
||||
)).errors,
|
||||
];
|
||||
|
||||
t.deepEqual(sortBy(errors, ['message']), sortBy([error1, error2], ['message']));
|
||||
@ -989,7 +1002,7 @@ test('Log all "verifyRelease" errors', async (t) => {
|
||||
t.deepEqual(fail.args[0][1].errors, [error1, error2]);
|
||||
});
|
||||
|
||||
test('Dry-run skips addChannel, prepare, publish and success', async (t) => {
|
||||
test.serial('Dry-run skips addChannel, prepare, publish and success', async (t) => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
await gitCommits(['First'], {cwd});
|
||||
await gitTagVersion('v1.0.0', undefined, {cwd});
|
||||
@ -1054,7 +1067,7 @@ test('Dry-run skips addChannel, prepare, publish and success', async (t) => {
|
||||
t.true(t.context.warn.calledWith(`Skip step "success" of plugin "[Function: ${success.name}]" in dry-run mode`));
|
||||
});
|
||||
|
||||
test('Dry-run skips fail', async (t) => {
|
||||
test.serial('Dry-run skips fail', async (t) => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
// Add commits to the master branch
|
||||
@ -1083,7 +1096,7 @@ test('Dry-run skips fail', async (t) => {
|
||||
const errors = [
|
||||
...(await t.throwsAsync(
|
||||
semanticRelease(options, {cwd, env: {}, stdout: new WritableStreamBuffer(), stderr: new WritableStreamBuffer()})
|
||||
)),
|
||||
)).errors,
|
||||
];
|
||||
|
||||
t.deepEqual(sortBy(errors, ['message']), sortBy([error1, error2], ['message']));
|
||||
@ -1093,7 +1106,7 @@ test('Dry-run skips fail', async (t) => {
|
||||
t.true(t.context.warn.calledWith(`Skip step "fail" of plugin "[Function: ${fail.name}]" in dry-run mode`));
|
||||
});
|
||||
|
||||
test('Force a dry-run if not on a CI and "noCi" is not explicitly set', async (t) => {
|
||||
test.serial('Force a dry-run if not on a CI and "noCi" is not explicitly set', async (t) => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
// Add commits to the master branch
|
||||
@ -1157,7 +1170,7 @@ test('Force a dry-run if not on a CI and "noCi" is not explicitly set', async (t
|
||||
t.is(success.callCount, 0);
|
||||
});
|
||||
|
||||
test('Dry-run does not print changelog if "generateNotes" return "undefined"', async (t) => {
|
||||
test.serial('Dry-run does not print changelog if "generateNotes" return "undefined"', async (t) => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
// Add commits to the master branch
|
||||
@ -1200,7 +1213,7 @@ test('Dry-run does not print changelog if "generateNotes" return "undefined"', a
|
||||
t.deepEqual(t.context.log.args[t.context.log.args.length - 1], ['Release note for version 2.0.0:']);
|
||||
});
|
||||
|
||||
test('Allow local releases with "noCi" option', async (t) => {
|
||||
test.serial('Allow local releases with "noCi" option', async (t) => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
// Add commits to the master branch
|
||||
@ -1268,7 +1281,7 @@ test('Allow local releases with "noCi" option', async (t) => {
|
||||
t.is(success.callCount, 1);
|
||||
});
|
||||
|
||||
test('Accept "undefined" value returned by "generateNotes" and "false" by "publish" and "addChannel"', async (t) => {
|
||||
test.serial('Accept "undefined" value returned by "generateNotes" and "false" by "publish" and "addChannel"', async (t) => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
await gitCommits(['First'], {cwd});
|
||||
await gitTagVersion('v1.0.0', undefined, {cwd});
|
||||
@ -1336,7 +1349,7 @@ test('Accept "undefined" value returned by "generateNotes" and "false" by "publi
|
||||
t.deepEqual(success.args[1][1].releases, [{pluginName: '[Function: functionStub]'}]);
|
||||
});
|
||||
|
||||
test('Returns false if triggered by a PR', async (t) => {
|
||||
test.serial('Returns false if triggered by a PR', async (t) => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
|
||||
@ -1356,7 +1369,7 @@ test('Returns false if triggered by a PR', async (t) => {
|
||||
);
|
||||
});
|
||||
|
||||
test('Throws "EINVALIDNEXTVERSION" if next release is out of range of the current maintenance branch', async (t) => {
|
||||
test.serial('Throws "EINVALIDNEXTVERSION" if next release is out of range of the current maintenance branch', async (t) => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
await gitCommits(['feat: initial commit'], {cwd});
|
||||
await gitTagVersion('v1.0.0', undefined, {cwd});
|
||||
@ -1392,12 +1405,14 @@ test('Throws "EINVALIDNEXTVERSION" if next release is out of range of the curren
|
||||
success,
|
||||
};
|
||||
|
||||
const env = {};
|
||||
await td.replaceEsm('../lib/get-logger.js', null, () => t.context.logger);
|
||||
await td.replaceEsm('env-ci', null, () => ({isCi: true, branch: '1.x', isPr: false}));
|
||||
const envCi = (await td.replaceEsm('env-ci')).default;
|
||||
td.when(envCi({cwd, env})).thenReturn({isCi: true, branch: '1.x', isPr: false});
|
||||
const semanticRelease = (await import('../index.js')).default;
|
||||
|
||||
const error = await t.throwsAsync(
|
||||
semanticRelease(options, {cwd, env: {}, stdout: {write: () => {}}, stderr: {write: () => {}}})
|
||||
semanticRelease(options, {cwd, env, stdout: {write: () => {}}, stderr: {write: () => {}}})
|
||||
);
|
||||
|
||||
t.is(error.code, 'EINVALIDNEXTVERSION');
|
||||
@ -1406,7 +1421,7 @@ test('Throws "EINVALIDNEXTVERSION" if next release is out of range of the curren
|
||||
t.regex(error.details, /A valid branch could be `master`./);
|
||||
});
|
||||
|
||||
test('Throws "EINVALIDNEXTVERSION" if next release is out of range of the current release branch', async (t) => {
|
||||
test.serial('Throws "EINVALIDNEXTVERSION" if next release is out of range of the current release branch', async (t) => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
await gitCommits(['feat: initial commit'], {cwd});
|
||||
await gitTagVersion('v1.0.0', undefined, {cwd});
|
||||
@ -1457,7 +1472,7 @@ test('Throws "EINVALIDNEXTVERSION" if next release is out of range of the curren
|
||||
t.regex(error.details, /A valid branch could be `next` or `next-major`./);
|
||||
});
|
||||
|
||||
test('Throws "EINVALIDMAINTENANCEMERGE" if merge an out of range release in a maintenance branch', async (t) => {
|
||||
test.serial('Throws "EINVALIDMAINTENANCEMERGE" if merge an out of range release in a maintenance branch', async (t) => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
await gitCommits(['First'], {cwd});
|
||||
await gitTagVersion('v1.0.0', undefined, {cwd});
|
||||
@ -1504,11 +1519,11 @@ test('Throws "EINVALIDMAINTENANCEMERGE" if merge an out of range release in a ma
|
||||
|
||||
await td.replaceEsm('../lib/get-logger.js', null, () => t.context.logger);
|
||||
await td.replaceEsm('env-ci', null, () => ({isCi: true, branch: '1.1.x', isPr: false}));
|
||||
const semanticRelease = await import('../index.js');
|
||||
const semanticRelease = (await import('../index.js')).default;
|
||||
const errors = [
|
||||
...(await t.throwsAsync(
|
||||
semanticRelease(options, {cwd, env: {}, stdout: {write: () => {}}, stderr: {write: () => {}}})
|
||||
)),
|
||||
)).errors,
|
||||
];
|
||||
|
||||
t.is(addChannel.callCount, 0);
|
||||
@ -1526,7 +1541,7 @@ test('Throws "EINVALIDMAINTENANCEMERGE" if merge an out of range release in a ma
|
||||
t.truthy(errors[0].details);
|
||||
});
|
||||
|
||||
test('Returns false value if triggered on an outdated clone', async (t) => {
|
||||
test.serial('Returns false value if triggered on an outdated clone', async (t) => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
let {cwd, repositoryUrl} = await gitRepo(true);
|
||||
const repoDir = cwd;
|
||||
@ -1553,7 +1568,7 @@ test('Returns false value if triggered on an outdated clone', async (t) => {
|
||||
]);
|
||||
});
|
||||
|
||||
test('Returns false if not running from the configured branch', async (t) => {
|
||||
test.serial('Returns false if not running from the configured branch', async (t) => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
const options = {
|
||||
@ -1588,7 +1603,7 @@ test('Returns false if not running from the configured branch', async (t) => {
|
||||
);
|
||||
});
|
||||
|
||||
test('Returns false if there is no relevant changes', async (t) => {
|
||||
test.serial('Returns false if there is no relevant changes', async (t) => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
// Add commits to the master branch
|
||||
@ -1636,7 +1651,7 @@ test('Returns false if there is no relevant changes', async (t) => {
|
||||
);
|
||||
});
|
||||
|
||||
test('Exclude commits with [skip release] or [release skip] from analysis', async (t) => {
|
||||
test.serial('Exclude commits with [skip release] or [release skip] from analysis', async (t) => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
// Add commits to the master branch
|
||||
@ -1669,12 +1684,14 @@ test('Exclude commits with [skip release] or [release skip] from analysis', asyn
|
||||
fail: stub().resolves(),
|
||||
};
|
||||
|
||||
const env = {};
|
||||
await td.replaceEsm('../lib/get-logger.js', null, () => t.context.logger);
|
||||
await td.replaceEsm('env-ci', null, () => ({isCi: true, branch: 'master', isPr: false}));
|
||||
const envCi = (await td.replaceEsm('env-ci')).default;
|
||||
td.when(envCi({env, cwd})).thenReturn({isCi: true, branch: 'master', isPr: false});
|
||||
const semanticRelease = (await import('../index.js')).default;
|
||||
await semanticRelease(options, {
|
||||
cwd,
|
||||
env: {},
|
||||
env,
|
||||
stdout: new WritableStreamBuffer(),
|
||||
stderr: new WritableStreamBuffer(),
|
||||
});
|
||||
@ -1684,7 +1701,7 @@ test('Exclude commits with [skip release] or [release skip] from analysis', asyn
|
||||
t.deepEqual(analyzeCommits.args[0][1].commits[0], commits[commits.length - 1]);
|
||||
});
|
||||
|
||||
test('Log both plugins errors and errors thrown by "fail" plugin', async (t) => {
|
||||
test.serial('Log both plugins errors and errors thrown by "fail" plugin', async (t) => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
const pluginError = new SemanticReleaseError('Plugin error', 'ERR');
|
||||
const failError1 = new Error('Fail error 1');
|
||||
@ -1709,7 +1726,7 @@ test('Log both plugins errors and errors thrown by "fail" plugin', async (t) =>
|
||||
t.is(t.context.error.args[t.context.error.args.length - 2][1], failError2);
|
||||
});
|
||||
|
||||
test('Call "fail" only if a plugin returns a SemanticReleaseError', async (t) => {
|
||||
test.serial('Call "fail" only if a plugin returns a SemanticReleaseError', async (t) => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
const pluginError = new Error('Plugin error');
|
||||
const fail = stub().resolves();
|
||||
@ -1732,7 +1749,7 @@ test('Call "fail" only if a plugin returns a SemanticReleaseError', async (t) =>
|
||||
t.is(t.context.error.args[t.context.error.args.length - 1][1], pluginError);
|
||||
});
|
||||
|
||||
test('Throw SemanticReleaseError if repositoryUrl is not set and cannot be found from repo config', async (t) => {
|
||||
test.serial('Throw SemanticReleaseError if repositoryUrl is not set and cannot be found from repo config', async (t) => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
const {cwd} = await gitRepo();
|
||||
|
||||
@ -1742,7 +1759,7 @@ test('Throw SemanticReleaseError if repositoryUrl is not set and cannot be found
|
||||
const errors = [
|
||||
...(await t.throwsAsync(
|
||||
semanticRelease({}, {cwd, env: {}, stdout: new WritableStreamBuffer(), stderr: new WritableStreamBuffer()})
|
||||
)),
|
||||
)).errors,
|
||||
];
|
||||
|
||||
// Verify error code and type
|
||||
@ -1752,7 +1769,7 @@ test('Throw SemanticReleaseError if repositoryUrl is not set and cannot be found
|
||||
t.truthy(errors[0].details);
|
||||
});
|
||||
|
||||
test('Throw an Error if plugin returns an unexpected value', async (t) => {
|
||||
test.serial('Throw an Error if plugin returns an unexpected value', async (t) => {
|
||||
// Create a git repository, set the current working directory at the root of the repo
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
// Add commits to the master branch
|
||||
@ -1785,7 +1802,7 @@ test('Throw an Error if plugin returns an unexpected value', async (t) => {
|
||||
t.regex(error.details, /string/);
|
||||
});
|
||||
|
||||
test('Hide sensitive information passed to "fail" plugin', async (t) => {
|
||||
test.serial('Hide sensitive information passed to "fail" plugin', async (t) => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
|
||||
const fail = stub().resolves();
|
||||
@ -1823,7 +1840,7 @@ test('Hide sensitive information passed to "fail" plugin', async (t) => {
|
||||
});
|
||||
});
|
||||
|
||||
test('Hide sensitive information passed to "success" plugin', async (t) => {
|
||||
test.serial('Hide sensitive information passed to "success" plugin', async (t) => {
|
||||
const {cwd, repositoryUrl} = await gitRepo(true);
|
||||
await gitCommits(['feat: initial release'], {cwd});
|
||||
await gitTagVersion('v1.0.0', undefined, {cwd});
|
||||
@ -1865,7 +1882,7 @@ test('Hide sensitive information passed to "success" plugin', async (t) => {
|
||||
});
|
||||
});
|
||||
|
||||
test('Get all commits including the ones not in the shallow clone', async (t) => {
|
||||
test.serial('Get all commits including the ones not in the shallow clone', async (t) => {
|
||||
let {cwd, repositoryUrl} = await gitRepo(true);
|
||||
await gitTagVersion('v1.0.0', undefined, {cwd});
|
||||
await gitCommits(['First', 'Second', 'Third'], {cwd});
|
||||
|
@ -659,8 +659,6 @@ test('Hide sensitive environment variable values from the logs', async (t) => {
|
||||
extendEnv: false,
|
||||
});
|
||||
|
||||
console.log({stderr})
|
||||
|
||||
t.regex(stdout, new RegExp(`Console: Exposing token ${escapeRegExp(SECRET_REPLACEMENT)}`));
|
||||
t.regex(stdout, new RegExp(`Log: Exposing token ${escapeRegExp(SECRET_REPLACEMENT)}`));
|
||||
t.regex(stderr, new RegExp(`Error: Console token ${escapeRegExp(SECRET_REPLACEMENT)}`));
|
||||
|
Loading…
x
Reference in New Issue
Block a user