Compare commits

..
75 Commits
Author SHA1 Message Date
7bc21fcdc7 fix(deps): update dependency execa to v8 (#2914)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-19 17:20:09 -05:00
79bca752a7 ci(action): update actions/setup-node digest to 5e21ff4 (#2912)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 15:12:45 +00:00
0e5e41f460 chore(deps): update dependency nock to v13.3.3 (#2911)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-16 23:05:46 +00:00
c41d55c25b chore(deps): update dependency prettier to v3.0.2 (#2909)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-15 16:35:49 +00:00
eddbc53172 ci(action): update github/codeql-action action to v2.21.4 (#2907)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-14 16:54:11 +00:00
2b28ba98d2 ci(action): update actions/setup-node digest to bea5baf (#2906)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-14 12:16:26 +00:00
9878b316bc chore(deps): lock file maintenance (#2905)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-14 01:45:14 +00:00
3bb968c87d ci(action): update github/codeql-action action to v2.21.3 (#2902)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-08 14:42:59 +00:00
1f54c5a9d9 chore(deps): update dependency prettier to v3.0.1 (#2898)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-03 06:47:36 +00:00
fd6b46e1b1 chore(deps): lock file maintenance (#2894)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-31 00:16:10 +00:00
07b12ceeb9 ci(action): update github/codeql-action action to v2.21.2 (#2892)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-28 15:56:04 +00:00
a5dd6dad3a ci(action): update github/codeql-action action to v2.21.1 (#2889)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-26 22:31:04 +00:00
cb8a95b3d3 chore(deps): update dependency c8 to v8.0.1 (#2888)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-25 17:35:45 +00:00
24b34fe9df chore(deps): lock file maintenance (#2886)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-24 02:26:27 +00:00
19e3963acc ci(action): update github/codeql-action action to v2.21.0 (#2878)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-19 14:09:23 +00:00
2659253cfb chore(deps): lock file maintenance (#2876)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-17 02:28:07 +00:00
Matt Travi f8a41a9af4 chore(license): changed line wrapping hoping to trigger github to recognize the license 2023-07-15 22:32:10 -05:00
078c86814c ci(action): update github/codeql-action action to v2.20.4 (#2873)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-14 16:09:09 +00:00
c8c7d121e6 chore(deps): update dependency nock to v13.3.2 (#2872)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 23:29:44 +00:00
1c30a57287 chore(deps): update dependency tempy to v3.1.0 (#2869)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-10 21:01:24 +00:00
3e6be5fff1 ci(action): update actions/setup-node digest to e33196f (#2866)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-10 10:13:10 -07:00
b81b9ee522 ci(action): update github/codeql-action action to v2.20.3 (#2867)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-10 06:48:42 +00:00
ba4a25e3f2 chore(deps): lock file maintenance (#2868)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-10 01:02:15 +00:00
Justin PoehneltandGitHub 4a1378d6c7 docs(plugins): change to new repo and package name (#2865)
chore: change to new repo and package name

https://www.npmjs.com/package/@google/semantic-release-replace-plugin now points to `semantic-release-replace-plugin'.
2023-07-05 20:45:48 -07:00
Matt TraviandGitHub af5f0e30b5 Merge pull request #2863 from semantic-release/renovate/prettier-3.x 2023-07-05 12:10:14 -05:00
Matt Travi 6fd45e865f chore(prettier): ignored formatting change for v3 upgrade from git blame 2023-07-05 11:10:14 -05:00
Matt Travi 272af21052 style(prettier): adjusted to match prettier v3 expectations 2023-07-05 11:07:42 -05:00
renovate[bot]andGitHub 738cefc802 chore(deps): update dependency prettier to v3 2023-07-05 13:07:13 +00:00
81e1ca4dd1 ci(action): update github/codeql-action action to v2.20.2 (#2861)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 07:01:48 +00:00
a2c7303d62 chore(deps): lock file maintenance (#2859)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 03:37:46 +00:00
70996e0181 fix(deps): update dependency read-pkg-up to v10 (#2862)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-04 20:03:53 -05:00
40dbf5633f ci(action): update actions/checkout action to v3.5.3 (#2852)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 07:50:42 +00:00
3159c977fc chore(deps): lock file maintenance (#2849)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 03:23:24 +00:00
41e7027b2d ci(action): update actions/upload-artifact action to v3.1.2 (#2851)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 02:47:04 +00:00
Tijmen van de MeentandGitHub e4229f9c68 fix: get correct version if prerelease branch shares version with ... (#2416) 2023-06-28 14:38:35 -07:00
9514e20e7b ci(action): update ossf/scorecard-action action to v2.2.0 (#2854)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 17:57:07 -05:00
5fcdc27e75 ci(action): update github/codeql-action action to v2.20.1 (#2853)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 09:26:04 +00:00
1260d3a971 ci(action): pin dependencies (#2850)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 04:50:50 +00:00
Matt TraviandGitHub 9ebabe1266 ci(ossf-scorecard): added workflow calculating scorecard metrics (#2848) 2023-06-25 21:44:40 -05:00
Matt TraviandGitHub e39ae90ae2 test(integration): properly waited for the image pulls to complete (#2842) 2023-06-25 17:51:31 -07:00
39d2a05014 chore(deps): update dependency sinon to v15.2.0 (#2844)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-20 13:15:55 -07:00
45eb11ae9c chore(deps): update dependency c8 to v8 (#2833)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-19 11:31:31 -07:00
71e805d90c chore(deps): update dependency ava to v5.3.1 (#2839)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-19 06:33:31 +00:00
9f660ff885 chore(deps): lock file maintenance (#2841)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-19 03:58:31 +00:00
01e85df88a chore(deps): update dependency sinon to v15.1.2 (#2832)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-12 20:39:33 +00:00
caa0d50d52 chore(deps): lock file maintenance (#2831)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-12 04:32:51 +00:00
452e1fa4b9 fix(deps): update dependency marked to v5
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 16:54:36 -07:00
94e773d915 ci(action): update actions/checkout digest to c85c95e
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 16:25:38 -07:00
Matt TraviandGitHub 18730e824f Merge pull request #2826 from semantic-release/renovate/major-semantic-release-monorepo 2023-06-09 16:32:02 -05:00
Matt Travi 4bf763f264 test(semantic-release-error): switched instanceof check to the native version
since the check provided by the ava assertion seems to fail beyond the context of the test
2023-06-09 16:14:46 -05:00
renovate[bot]andGitHub d259350c3e fix(deps): update dependency @semantic-release/error to v4 2023-06-07 21:29:33 +00:00
286bd67de5 chore(deps): lock file maintenance (#2825)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 04:23:37 +00:00
95551a0df8 chore(deps): update dependency ava to v5.3.0 (#2809)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-02 15:30:01 -05:00
4e80bab563 chore(deps): lock file maintenance (#2816)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-02 15:25:29 -05:00
5145268539 chore(deps): update dependency got to v13 (#2813)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-02 15:18:21 -05:00
Matt TraviandGitHub dd352f1044 Merge pull request #2823 from semantic-release/beta 2023-06-02 15:09:44 -05:00
Matt Travi 39410186df fix(deps): updated the beta plugins to stable versions 2023-06-02 14:30:32 -05:00
Matt Travi 4a6b31f57e fix: bump @semantic-release/commit-analyzer to v10.0.0-beta.1 2023-05-29 22:03:54 -05:00
6f19d77e54 fix: bump @semantic-release/github to 9.0.0-beta.2 (#2818)
Co-authored-by: Matt Travi <programmer@travi.org>
2023-05-29 20:47:17 -05:00
6ef4cee971 chore(deps): update dependency c8 to v7.14.0 (#2815)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-28 19:00:28 +00:00
18bd0c4904 chore(deps): lock file maintenance (#2797)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-23 07:05:08 +00:00
Matt Travi ab4fe4c3d4 refactor: leverage native async setTimeout rather than delay 2023-05-22 22:25:22 -05:00
42385d0f96 chore(deps): update dependency sinon to v15.1.0 (#2801)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-21 15:39:53 -07:00
57db31ad97 chore(deps): update dependency delay to v6 (#2803)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-21 20:14:15 +00:00
Matt TraviandGitHub fa133f2a9d ci(release): pinned the version of semantic-release (#2796) 2023-05-12 17:17:04 -05:00
4af49f3c87 chore(deps): update dependency nock to v13.3.1 (#2777)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-10 16:01:22 -05:00
Joram van den BoezemandGitHub 0d5e717fa6 docs(extending): add semantic-release-yarn to community plugins (#2790) 2023-05-10 08:40:17 -05:00
Matt Travi ee250a04db docs(gitbook): fixed reference to the installation page 2023-05-09 09:07:50 -05:00
85a31fb612 docs(npx-version): mentioned using a renovate regex manager to update the version (#2786)
Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com>
2023-05-09 08:02:45 -05:00
8826e524e4 chore(deps): update dependency testdouble to v3.18.0 (#2787)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-09 06:35:20 +00:00
Liran TalandGitHub f1b0801157 docs: Update README.md with npm package provenance (#2789) 2023-05-08 21:06:39 -05:00
214a376342 ci(action): pin dependencies (#2781)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-06 10:09:56 +00:00
0c6c20ee96 chore(deps): lock file maintenance (#2763)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-06 08:06:29 +00:00
420211c806 chore(deps): update dependency prettier to v2.8.8 (#2771)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-06 04:19:59 +00:00
Eric KandGitHub 0476ae58a0 docs(extending): add link to semantic-release-major-tag (#2776) 2023-05-05 16:55:09 -05:00
21 changed files with 1451 additions and 7979 deletions
+3 -1
View File
@@ -1,2 +1,4 @@
# style: prettier (#2670)
b06c9bbe4c6be121c5561b356d8c465c1cadffba
b06c9bbe4c6be121c5561b356d8c465c1cadffba
# style: upgraded prettier to v3 (#2863)
272af210523804de782b3076f05e56bcb4aeeb8f
+5 -3
View File
@@ -18,14 +18,16 @@ jobs:
name: release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3
- uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
with:
cache: npm
node-version: lts/*
- run: npm clean-install
- run: npm audit signatures
- run: npx semantic-release
# pinned version updated automatically by Renovate.
# details at https://semantic-release.gitbook.io/semantic-release/usage/installation#global-installation
- run: npx semantic-release@21.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.SEMANTIC_RELEASE_BOT_NPM_TOKEN }}
+36
View File
@@ -0,0 +1,36 @@
name: OpenSSF Scorecard
"on":
schedule:
- cron: 31 2 * * 1
push:
branches:
- master
permissions: read-all
jobs:
analysis:
name: Scorecard analysis
runs-on: ubuntu-latest
permissions:
security-events: write
id-token: write
steps:
- name: Checkout code
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
persist-credentials: false
- name: Run analysis
uses: ossf/scorecard-action@08b4669551908b1024bb425080c797723083c031 # v2.2.0
with:
results_file: results.sarif
results_format: sarif
publish_results: true
- name: Upload artifact
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
with:
name: SARIF file
path: results.sarif
retention-days: 5
- name: Upload to code-scanning
uses: github/codeql-action/upload-sarif@a09933a12a80f87b87005513f0abb1494c27a716 # v2.21.4
with:
sarif_file: results.sarif
+4 -4
View File
@@ -27,11 +27,11 @@ jobs:
timeout-minutes: 10
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3
- run: git config --global user.name github-actions
- run: git config --global user.email github-actions@github.com
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
with:
node-version: ${{ matrix.node-version }}
cache: npm
@@ -46,8 +46,8 @@ jobs:
runs-on: ubuntu-latest
needs: test_matrix
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3
- uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
with:
node-version: lts/*
cache: npm
+2 -2
View File
@@ -9,8 +9,8 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+4
View File
@@ -7,6 +7,9 @@
<a href="https://github.com/semantic-release/semantic-release/actions?query=workflow%3ATest+branch%3Amaster">
<img alt="Build states" src="https://github.com/semantic-release/semantic-release/workflows/Test/badge.svg">
</a>
<a href="https://securityscorecards.dev/viewer/?uri=github.com/semantic-release/semantic-release">
<img alt="OpenSSF Scorecard" src="https://api.securityscorecards.dev/projects/github.com/semantic-release/semantic-release/badge">
</a>
<a href="#badge">
<img alt="semantic-release: angular" src="https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release">
</a>
@@ -41,6 +44,7 @@ This removes the immediate connection between human emotions and version numbers
- Avoid potential errors associated with manual releases
- Support any [package managers and languages](docs/recipes/release-workflow/README.md#package-managers-and-languages) via [plugins](docs/usage/plugins.md)
- Simple and reusable configuration via [shareable configurations](docs/usage/shareable-configurations.md)
- Support for [npm package provenance](https://github.com/semantic-release/npm#npm-provenance) that promotes increased supply-chain security via signed attestations on GitHub Actions
## How does it work?
+1 -1
View File
@@ -3,7 +3,7 @@
## Usage
- [Getting started](docs/usage/getting-started.md#getting-started)
- [Installation](docs/usage/installation.md#installation)
- [Installation](docs/usage/installation.md)
- [CI Configuration](docs/usage/ci-configuration.md)
- [Configuration](docs/usage/configuration.md)
- [Plugins](docs/usage/plugins.md)
+1 -1
View File
@@ -142,7 +142,7 @@ Information related to the last release found:
| gitTag | `String` | The [Git tag](https://git-scm.com/book/en/v2/Git-Basics-Tagging) associated with the last release. |
| channel | `String` | The distribution channel on which the last release was initially made available (`undefined` for the default distribution channel). |
**Notes**: If no previous release is found, `lastRelease` will be an empty `Object`.
**Note**: If no previous release is found, `lastRelease` will be an empty `Object`.
Example:
+9 -1
View File
@@ -107,7 +107,7 @@
- `verifyConditions`: Verify the presence and the validity of the authentication and the assets option configuration.
- `publish`: Publish a Gitea release, optionally uploading file assets.
- `addChannel`: Update a Gitea release's pre-release field.
- [@google/semantic-release-replace-plugin](https://github.com/google/semantic-release-replace-plugin)
- [semantic-release-replace-plugin](https://github.com/jpoehnelt/semantic-release-replace-plugin)
- `prepare`: Replace version strings in files using regex and glob.
- [semantic-release-rubygem](https://github.com/Gusto/semantic-release-rubygem)
- `verifyConditions`: Locate and validate a `.gemspec` file, locate and validate a `lib/**/version.rb` file, verify the presence of the `GEM_HOST_API_KEY` environment variable, and create a credentials file with the API key.
@@ -174,3 +174,11 @@
- [semantic-release-coralogix](https://github.com/adobe/semantic-release-coralogix)
- `verifyConditions` Verified that required credentials are provided and API is accessible
- `publish` add a release tag to Coralogix
- [semantic-release-major-tag](https://github.com/doteric/semantic-release-major-tag)
- `success` Create major version tag, for example `v1`.
- [semantic-release-yarn](https://github.com/hongaar/semantic-release-yarn)
- **Note**: this is an alternative to the default `@semantic-release/npm` plugin and adds support for monorepos.
- `verifyConditions` Verify Yarn 2 or higher is installed, verify the presence of a NPM auth token (either in an environment variable or a `.yarnrc.yml` file) and verify the authentication method is valid.
- `prepare` Update the `package.json` version and create the package tarball.
- `addChannel` Add a tag for the release.
- `publish` Publish to the npm registry.
+24 -5
View File
@@ -24,9 +24,28 @@ For other type of projects we recommend installing **semantic-release** directly
$ npx semantic-release
```
**Note**: For a global installation, it's recommended to specify the major **semantic-release** version to install (for example with `npx semantic-release@18`).
This way your build will not automatically use the next major **semantic-release** release that could possibly break your build.
You will have to upgrade manually when a new major version is released.
### Notes
**Note**: `npx` is a tool bundled with `npm@>=5.2.0`. It is used to conveniently install the semantic-release binary and to execute it.
See [What is npx](../support/FAQ.md#what-is-npx) for more details.
1. If you've globally installed **semantic-release** then we recommend that you set the major **semantic-release** version to install.
For example, by using `npx semantic-release@18`.
This way you control which major version of **semantic-release** is used by your build, and thus avoid breaking the build when there's a new major version of **semantic-release**.
This also means you, or a bot, must upgrade **semantic-release** when a new major version is released.
2. Pinning **semantic-release** to an exact version makes your releases even more deterministic.
But pinning also means you, or a bot, must update to newer versions of **semantic-release** more often.
3. You can use [Renovate's regex manager](https://docs.renovatebot.com/modules/manager/regex/) to get automatic updates for **semantic-release** in either of the above scenarios.
Put this in your Renovate configuration file:
```json
{
"regexManagers": [
{
"description": "Update semantic-release version used by npx",
"fileMatch": ["^\\.github/workflows/[^/]+\\.ya?ml$"],
"matchStrings": ["\\srun: npx semantic-release@(?<currentValue>.*?)\\s"],
"datasourceTemplate": "npm",
"depNameTemplate": "semantic-release"
}
]
}
```
4. `npx` is a tool bundled with `npm@>=5.2.0`. You can use it to install (and run) the **semantic-release** binary.
See [What is npx](../support/FAQ.md#what-is-npx) for more details.
+5 -1
View File
@@ -30,7 +30,11 @@ export default ({ branch, options: { tagFormat } }, { before } = {}) => {
const [{ version, gitTag, channels } = {}] = branch.tags
.filter(
(tag) =>
((branch.type === "prerelease" && tag.channels.some((channel) => isSameChannel(branch.channel, channel))) ||
((branch.type === "prerelease" &&
tag.channels.some((channel) => isSameChannel(branch.channel, channel)) &&
semver
.parse(tag.version)
.prerelease.includes(branch.prerelease === true ? branch.name : branch.prerelease)) ||
!semver.prerelease(tag.version)) &&
(isUndefined(before) || semver.lt(tag.version, before))
)
+1229 -7921
View File
File diff suppressed because it is too large Load Diff
+14 -15
View File
@@ -26,16 +26,16 @@
"Matt Travi <npm@travi.org> (https://matt.travi.org/)"
],
"dependencies": {
"@semantic-release/commit-analyzer": "^9.0.2",
"@semantic-release/error": "^3.0.0",
"@semantic-release/github": "^8.0.0",
"@semantic-release/commit-analyzer": "^10.0.0",
"@semantic-release/error": "^4.0.0",
"@semantic-release/github": "^9.0.0",
"@semantic-release/npm": "^10.0.2",
"@semantic-release/release-notes-generator": "^11.0.0",
"aggregate-error": "^4.0.1",
"cosmiconfig": "^8.0.0",
"debug": "^4.0.0",
"env-ci": "^9.0.0",
"execa": "^7.0.0",
"execa": "^8.0.0",
"figures": "^5.0.0",
"find-versions": "^5.1.0",
"get-stream": "^6.0.0",
@@ -43,12 +43,12 @@
"hook-std": "^3.0.0",
"hosted-git-info": "^6.0.0",
"lodash-es": "^4.17.21",
"marked": "^4.1.0",
"marked": "^5.0.0",
"marked-terminal": "^5.1.1",
"micromatch": "^4.0.2",
"p-each-series": "^3.0.0",
"p-reduce": "^3.0.0",
"read-pkg-up": "^9.1.0",
"read-pkg-up": "^10.0.0",
"resolve-from": "^5.0.0",
"semver": "^7.3.2",
"semver-diff": "^4.0.0",
@@ -56,24 +56,23 @@
"yargs": "^17.5.1"
},
"devDependencies": {
"ava": "5.2.0",
"c8": "7.13.0",
"ava": "5.3.1",
"c8": "8.0.1",
"clear-module": "4.1.2",
"codecov": "3.8.3",
"delay": "5.0.0",
"dockerode": "3.3.5",
"file-url": "4.0.0",
"fs-extra": "11.1.1",
"got": "12.6.0",
"got": "13.0.0",
"js-yaml": "4.1.0",
"mockserver-client": "5.15.0",
"nock": "13.3.0",
"nock": "13.3.3",
"p-retry": "5.1.2",
"prettier": "2.8.7",
"sinon": "15.0.4",
"prettier": "3.0.2",
"sinon": "15.2.0",
"stream-buffers": "3.0.2",
"tempy": "3.0.0",
"testdouble": "3.17.2"
"tempy": "3.1.0",
"testdouble": "3.18.0"
},
"engines": {
"node": ">=18"
+37
View File
@@ -43,6 +43,43 @@ test("Get the highest prerelease valid tag, ignoring other tags from other prere
});
});
test("Get the correct prerelease tag, when other prereleases share the same git HEAD", (t) => {
const testConfig = {
branch: {
name: "alpha",
prerelease: "alpha",
channel: "alpha",
tags: [
{ version: "1.0.0-beta.1", gitTag: "v1.0.0-beta.1", gitHead: "v1.0.0-beta.1", channels: ["beta"] },
{ version: "1.0.0-beta.2", gitTag: "v1.0.0-beta.2", gitHead: "v1.0.0-alpha.1", channels: ["alpha", "beta"] },
{ version: "1.0.0-alpha.1", gitTag: "v1.0.0-alpha.1", gitHead: "v1.0.0-alpha.1", channels: ["alpha", "beta"] },
],
type: "prerelease",
},
options: { tagFormat: `v\${version}`, debug: true },
};
const firstResult = getLastRelease(testConfig);
t.deepEqual(firstResult, {
version: "1.0.0-alpha.1",
gitTag: "v1.0.0-alpha.1",
name: "v1.0.0-alpha.1",
gitHead: "v1.0.0-alpha.1",
channels: ["alpha", "beta"],
});
testConfig.branch.prerelease = true;
const secondResult = getLastRelease(testConfig);
t.deepEqual(secondResult, {
version: "1.0.0-alpha.1",
gitTag: "v1.0.0-alpha.1",
name: "v1.0.0-alpha.1",
gitHead: "v1.0.0-alpha.1",
channels: ["alpha", "beta"],
});
});
test("Return empty object if no valid tag is found", (t) => {
const result = getLastRelease({
branch: {
+21
View File
@@ -275,3 +275,24 @@ test("Increase version for release on prerelease branch when there is no regular
"1.0.0-beta.2"
);
});
test("Increase patch when previous version shares HEAD with other releases", (t) => {
t.is(
getNextVersion({
branch: {
name: "alpha",
type: "prerelease",
prerelease: "alpha",
tags: [
{ gitTag: "v1.0.0-beta.1", version: "1.0.0-beta.1", channels: ["beta"] },
{ gitTag: "v1.0.0-beta.2", version: "1.0.0-beta.2", channels: ["alpha", "beta"] },
{ gitTag: "v1.0.0-alpha.1", version: "1.0.0-alpha.1", channels: ["alpha", "beta"] },
],
},
nextRelease: { type: "patch", channel: "alpha" },
lastRelease: { version: "v1.0.0-alpha.1", channels: ["alpha", "beta"] },
logger: t.context.logger,
}),
"1.0.0-alpha.2"
);
});
+1 -3
View File
@@ -90,9 +90,7 @@ export async function gitCommits(messages, execaOptions) {
await pEachSeries(
messages,
async (message) =>
(
await execa("git", ["commit", "-m", message, "--allow-empty", "--no-gpg-sign"], execaOptions)
).stdout
(await execa("git", ["commit", "-m", message, "--allow-empty", "--no-gpg-sign"], execaOptions)).stdout
);
return (await gitGetCommits(undefined, execaOptions)).slice(0, messages.length);
}
+12 -4
View File
@@ -1,5 +1,4 @@
import Docker from "dockerode";
import getStream from "get-stream";
import pRetry from "p-retry";
import { gitShallowClone, initBareRepo } from "./git-utils.js";
@@ -15,11 +14,20 @@ let container;
export const gitCredential = `${GIT_USERNAME}:${GIT_PASSWORD}`;
/**
* Download the `gitbox` Docker image, create a new container and start it.
* Download the `gitbox` Docker image
*/
export function pull() {
return docker.pull(IMAGE).then((stream) => {
return new Promise((resolve, reject) => {
docker.modem.followProgress(stream, (err, res) => (err ? reject(err) : resolve(res)));
});
});
}
/**
* create a new container and start it.
*/
export async function start() {
await getStream(await docker.pull(IMAGE));
container = await docker.createContainer({
Tty: true,
Image: IMAGE,
+12 -4
View File
@@ -1,5 +1,4 @@
import Docker from "dockerode";
import getStream from "get-stream";
import got from "got";
import pRetry from "p-retry";
import { mockServerClient } from "mockserver-client";
@@ -11,11 +10,20 @@ const docker = new Docker();
let container;
/**
* Download the `mockserver` Docker image, create a new container and start it.
* Download the `mockserver` Docker image,
*/
export function pull() {
return docker.pull(IMAGE).then((stream) => {
return new Promise((resolve, reject) => {
docker.modem.followProgress(stream, (err, res) => (err ? reject(err) : resolve(res)));
});
});
}
/**
* create a new container and start it.
*/
export async function start() {
await getStream(await docker.pull(IMAGE));
container = await docker.createContainer({
Tty: true,
Image: IMAGE,
+14 -6
View File
@@ -1,9 +1,8 @@
import path, { dirname } from "node:path";
import { fileURLToPath } from "node:url";
import { setTimeout } from "node:timers/promises";
import Docker from "dockerode";
import getStream from "get-stream";
import got from "got";
import delay from "delay";
import pRetry from "p-retry";
const IMAGE = "verdaccio/verdaccio:5";
@@ -17,11 +16,20 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
let container, npmToken;
/**
* Download the `npm-registry-docker` Docker image, create a new container and start it.
* Download the `npm-registry-docker` Docker image
*/
export function pull() {
return docker.pull(IMAGE).then((stream) => {
return new Promise((resolve, reject) => {
docker.modem.followProgress(stream, (err, res) => (err ? reject(err) : resolve(res)));
});
});
}
/**
* create a new container and start it.
*/
export async function start() {
await getStream(await docker.pull(IMAGE));
container = await docker.createContainer({
Tty: true,
Image: IMAGE,
@@ -33,7 +41,7 @@ export async function start() {
});
await container.start();
await delay(4000);
await setTimeout(4000);
try {
// Wait for the registry to be ready
+13 -4
View File
@@ -1853,10 +1853,19 @@ test.serial("Throw an Error if plugin returns an unexpected value", async (t) =>
await td.replaceEsm("../lib/get-logger.js", null, () => t.context.logger);
await td.replaceEsm("env-ci", null, () => ({ isCi: true, branch: "master", isPr: false }));
const semanticRelease = (await import("../index.js")).default;
const error = await t.throwsAsync(
semanticRelease(options, { cwd, env: {}, stdout: new WritableStreamBuffer(), stderr: new WritableStreamBuffer() }),
{ instanceOf: SemanticReleaseError }
);
let error;
try {
await semanticRelease(options, {
cwd,
env: {},
stdout: new WritableStreamBuffer(),
stderr: new WritableStreamBuffer(),
});
} catch (e) {
error = e;
}
t.is(error.code, "EANALYZECOMMITSOUTPUT");
t.regex(error.details, /string/);
});
+4 -3
View File
@@ -1,11 +1,11 @@
import path from "path";
import path from "node:path";
import { setTimeout } from "node:timers/promises";
import test from "ava";
import * as td from "testdouble";
import { escapeRegExp } from "lodash-es";
import fsExtra from "fs-extra";
import { execa } from "execa";
import { WritableStreamBuffer } from "stream-buffers";
import delay from "delay";
import getAuthUrl from "../lib/get-git-auth-url.js";
import { SECRET_REPLACEMENT } from "../lib/definitions/constants.js";
@@ -47,6 +47,7 @@ const pluginLogEnv = path.resolve("./test/fixtures/plugin-log-env");
const pluginEsmNamedExports = path.resolve("./test/fixtures/plugin-esm-named-exports");
test.before(async () => {
await Promise.all([gitbox.pull(), npmRegistry.pull(), mockServer.pull()]);
await Promise.all([gitbox.start(), npmRegistry.start(), mockServer.start()]);
env = {
@@ -295,7 +296,7 @@ test("Release patch, minor and major versions", async (t) => {
t.is(exitCode, 0);
// Wait for 3s as the change of dist-tag takes time to be reflected in the registry
await delay(3000);
await setTimeout(3000);
// Retrieve the published package from the registry and check version and gitHead
({
"dist-tags": { latest: releasedVersion },