Merge branch 'master' of github.com:semantic-release/semantic-release into beta
This commit is contained in:
commit
050412eab8
1
.github/workflows/test.yml
vendored
1
.github/workflows/test.yml
vendored
@ -24,6 +24,7 @@ jobs:
|
|||||||
- 19
|
- 19
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 10
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
- [Getting started](docs/usage/getting-started.md#getting-started)
|
- [Getting started](docs/usage/getting-started.md#getting-started)
|
||||||
- [Installation](docs/usage/installation.md#installation)
|
- [Installation](docs/usage/installation.md#installation)
|
||||||
- [CI Configuration](docs/usage/ci-configuration.md#ci-configuration)
|
- [CI Configuration](docs/usage/ci-configuration.md)
|
||||||
- [Configuration](docs/usage/configuration.md#configuration)
|
- [Configuration](docs/usage/configuration.md)
|
||||||
- [Plugins](docs/usage/plugins.md)
|
- [Plugins](docs/usage/plugins.md)
|
||||||
- [Workflow configuration](docs/usage/workflow-configuration.md)
|
- [Workflow configuration](docs/usage/workflow-configuration.md)
|
||||||
- [Shareable configurations](docs/usage/shareable-configurations.md)
|
- [Shareable configurations](docs/usage/shareable-configurations.md)
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
const semanticRelease = require("semantic-release");
|
const semanticRelease = require("semantic-release");
|
||||||
const { WritableStreamBuffer } = require("stream-buffers");
|
const { WritableStreamBuffer } = require("stream-buffers");
|
||||||
|
|
||||||
const stdoutBuffer = WritableStreamBuffer();
|
const stdoutBuffer = new WritableStreamBuffer();
|
||||||
const stderrBuffer = WritableStreamBuffer();
|
const stderrBuffer = new WritableStreamBuffer();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const result = await semanticRelease(
|
const result = await semanticRelease(
|
||||||
|
@ -171,3 +171,6 @@
|
|||||||
- `verifyConditions` Validate configuration, `Cargo.toml`, and local cargo executable. Also, logs in into `crates.io`.
|
- `verifyConditions` Validate configuration, `Cargo.toml`, and local cargo executable. Also, logs in into `crates.io`.
|
||||||
- `prepare` Write the new version number into `Cargo.toml` file and perform `cargo check` if configured.
|
- `prepare` Write the new version number into `Cargo.toml` file and perform `cargo check` if configured.
|
||||||
- `publish` Publish the Rust crate to `crates.io`
|
- `publish` Publish the Rust crate to `crates.io`
|
||||||
|
- [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
|
||||||
|
@ -14,7 +14,7 @@ See our [Node Support Policy](node-support-policy.md) for our long-term promise
|
|||||||
The recommended approach is to run the `semantic-release` command from a CI job running on the latest available LTS version of node.
|
The recommended approach is to run the `semantic-release` command from a CI job running on the latest available LTS version of node.
|
||||||
This can either be a job used by your project to test on the latest Node LTS version or a dedicated job for the release steps.
|
This can either be a job used by your project to test on the latest Node LTS version or a dedicated job for the release steps.
|
||||||
|
|
||||||
See [CI configuration](../usage/ci-configuration.md) and [CI configuration recipes](../recipes/release-workflow/README.md#ci-configurations) for more details.
|
See [CI configuration](../usage/ci-configuration.md) and [CI configuration recipes](../recipes/ci-configurations/README.md#ci-configurations) for more details.
|
||||||
|
|
||||||
## Alternative solutions
|
## Alternative solutions
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ Here are a few examples of the CI services that can be used to achieve this:
|
|||||||
- [Wercker Workflows](http://devcenter.wercker.com/docs/workflows)
|
- [Wercker Workflows](http://devcenter.wercker.com/docs/workflows)
|
||||||
- [GoCD Pipelines](https://docs.gocd.org/current/introduction/concepts_in_go.html#pipeline).
|
- [GoCD Pipelines](https://docs.gocd.org/current/introduction/concepts_in_go.html#pipeline).
|
||||||
|
|
||||||
See [CI configuration recipes](../recipes/ci-configurations#ci-configurations) for more details.
|
See [CI configuration recipes](../recipes/ci-configurations/README.md) for more details.
|
||||||
|
|
||||||
## Authentication
|
## Authentication
|
||||||
|
|
||||||
@ -45,6 +45,6 @@ See each plugin's documentation for the environment variables required.
|
|||||||
|
|
||||||
The authentication token/credentials have to be made available in the CI service via environment variables.
|
The authentication token/credentials have to be made available in the CI service via environment variables.
|
||||||
|
|
||||||
See [CI configuration recipes](../recipes/ci-configurations#ci-configurations) for more details on how to configure environment variables in your CI service.
|
See [CI configuration recipes](../recipes/ci-configurations/README.md) for more details on how to configure environment variables in your CI service.
|
||||||
|
|
||||||
**Note**: The environment variables `GH_TOKEN`, `GITHUB_TOKEN`, `GL_TOKEN` and `GITLAB_TOKEN` can be used for both the Git authentication and the API authentication required by [@semantic-release/github](https://github.com/semantic-release/github) and [@semantic-release/gitlab](https://github.com/semantic-release/gitlab).
|
**Note**: The environment variables `GH_TOKEN`, `GITHUB_TOKEN`, `GL_TOKEN` and `GITLAB_TOKEN` can be used for both the Git authentication and the API authentication required by [@semantic-release/github](https://github.com/semantic-release/github) and [@semantic-release/gitlab](https://github.com/semantic-release/gitlab).
|
||||||
|
13024
package-lock.json
generated
13024
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
12
package.json
12
package.json
@ -35,7 +35,7 @@
|
|||||||
"cosmiconfig": "^8.0.0",
|
"cosmiconfig": "^8.0.0",
|
||||||
"debug": "^4.0.0",
|
"debug": "^4.0.0",
|
||||||
"env-ci": "^8.0.0",
|
"env-ci": "^8.0.0",
|
||||||
"execa": "^6.1.0",
|
"execa": "^7.0.0",
|
||||||
"figures": "^5.0.0",
|
"figures": "^5.0.0",
|
||||||
"find-versions": "^5.1.0",
|
"find-versions": "^5.1.0",
|
||||||
"get-stream": "^6.0.0",
|
"get-stream": "^6.0.0",
|
||||||
@ -56,12 +56,12 @@
|
|||||||
"yargs": "^17.5.1"
|
"yargs": "^17.5.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"ava": "5.1.0",
|
"ava": "5.2.0",
|
||||||
"c8": "7.12.0",
|
"c8": "7.13.0",
|
||||||
"clear-module": "4.1.2",
|
"clear-module": "4.1.2",
|
||||||
"codecov": "3.8.3",
|
"codecov": "3.8.3",
|
||||||
"delay": "5.0.0",
|
"delay": "5.0.0",
|
||||||
"dockerode": "3.3.4",
|
"dockerode": "3.3.5",
|
||||||
"file-url": "^4.0.0",
|
"file-url": "^4.0.0",
|
||||||
"fs-extra": "^11.0.0",
|
"fs-extra": "^11.0.0",
|
||||||
"got": "^12.5.0",
|
"got": "^12.5.0",
|
||||||
@ -70,10 +70,10 @@
|
|||||||
"nock": "13.3.0",
|
"nock": "13.3.0",
|
||||||
"p-retry": "^5.1.1",
|
"p-retry": "^5.1.1",
|
||||||
"prettier": "^2.7.1",
|
"prettier": "^2.7.1",
|
||||||
"sinon": "15.0.1",
|
"sinon": "15.0.2",
|
||||||
"stream-buffers": "3.0.2",
|
"stream-buffers": "3.0.2",
|
||||||
"tempy": "^3.0.0",
|
"tempy": "^3.0.0",
|
||||||
"testdouble": "3.16.8"
|
"testdouble": "3.17.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18"
|
"node": ">=18"
|
||||||
|
@ -23,7 +23,10 @@ export async function start() {
|
|||||||
container = await docker.createContainer({
|
container = await docker.createContainer({
|
||||||
Tty: true,
|
Tty: true,
|
||||||
Image: IMAGE,
|
Image: IMAGE,
|
||||||
|
HostConfig: {
|
||||||
PortBindings: { [`${SERVER_PORT}/tcp`]: [{ HostPort: `${HOST_PORT}` }] },
|
PortBindings: { [`${SERVER_PORT}/tcp`]: [{ HostPort: `${HOST_PORT}` }] },
|
||||||
|
},
|
||||||
|
ExposedPorts: { [`${SERVER_PORT}/tcp`]: {} },
|
||||||
});
|
});
|
||||||
await container.start();
|
await container.start();
|
||||||
|
|
||||||
|
@ -19,7 +19,10 @@ export async function start() {
|
|||||||
container = await docker.createContainer({
|
container = await docker.createContainer({
|
||||||
Tty: true,
|
Tty: true,
|
||||||
Image: IMAGE,
|
Image: IMAGE,
|
||||||
|
HostConfig: {
|
||||||
PortBindings: { [`${MOCK_SERVER_PORT}/tcp`]: [{ HostPort: `${MOCK_SERVER_PORT}` }] },
|
PortBindings: { [`${MOCK_SERVER_PORT}/tcp`]: [{ HostPort: `${MOCK_SERVER_PORT}` }] },
|
||||||
|
},
|
||||||
|
ExposedPorts: { [`${MOCK_SERVER_PORT}/tcp`]: {} },
|
||||||
});
|
});
|
||||||
await container.start();
|
await container.start();
|
||||||
|
|
||||||
|
@ -25,8 +25,11 @@ export async function start() {
|
|||||||
container = await docker.createContainer({
|
container = await docker.createContainer({
|
||||||
Tty: true,
|
Tty: true,
|
||||||
Image: IMAGE,
|
Image: IMAGE,
|
||||||
|
HostConfig: {
|
||||||
PortBindings: { [`${REGISTRY_PORT}/tcp`]: [{ HostPort: `${REGISTRY_PORT}` }] },
|
PortBindings: { [`${REGISTRY_PORT}/tcp`]: [{ HostPort: `${REGISTRY_PORT}` }] },
|
||||||
Binds: [`${path.join(__dirname, "config.yaml")}:/verdaccio/conf/config.yaml`],
|
Binds: [`${path.join(__dirname, "config.yaml")}:/verdaccio/conf/config.yaml`],
|
||||||
|
},
|
||||||
|
ExposedPorts: { [`${REGISTRY_PORT}/tcp`]: {} },
|
||||||
});
|
});
|
||||||
|
|
||||||
await container.start();
|
await container.start();
|
||||||
|
@ -39,7 +39,11 @@ test.beforeEach((t) => {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
test("Plugins are called with expected values", async (t) => {
|
test.afterEach.always((t) => {
|
||||||
|
td.reset();
|
||||||
|
});
|
||||||
|
|
||||||
|
test.serial("Plugins are called with expected values", async (t) => {
|
||||||
// Create a git repository, set the current working directory at the root of the repo
|
// Create a git repository, set the current working directory at the root of the repo
|
||||||
const { cwd, repositoryUrl } = await gitRepo(true);
|
const { cwd, repositoryUrl } = await gitRepo(true);
|
||||||
// Add commits to the master branch
|
// Add commits to the master branch
|
||||||
|
@ -598,7 +598,7 @@ test("Log unexpected errors from plugins and exit with 1", async (t) => {
|
|||||||
// Verify the type and message are logged
|
// Verify the type and message are logged
|
||||||
t.regex(stderr, /Error: a/);
|
t.regex(stderr, /Error: a/);
|
||||||
// Verify the the stacktrace is logged
|
// Verify the the stacktrace is logged
|
||||||
t.regex(stderr, new RegExp(pluginError));
|
t.regex(stderr, new RegExp(process.platform === "win32" ? pluginError.replace(/\\/g, "\\\\") : pluginError));
|
||||||
// Verify the Error properties are logged
|
// Verify the Error properties are logged
|
||||||
t.regex(stderr, /errorProperty: 'errorProperty'/);
|
t.regex(stderr, /errorProperty: 'errorProperty'/);
|
||||||
t.is(exitCode, 1);
|
t.is(exitCode, 1);
|
||||||
@ -687,6 +687,7 @@ test("Use the valid git credentials when multiple are provided", async (t) => {
|
|||||||
BB_TOKEN_BASIC_AUTH: gitbox.gitCredential,
|
BB_TOKEN_BASIC_AUTH: gitbox.gitCredential,
|
||||||
GIT_ASKPASS: "echo",
|
GIT_ASKPASS: "echo",
|
||||||
GIT_TERMINAL_PROMPT: 0,
|
GIT_TERMINAL_PROMPT: 0,
|
||||||
|
GIT_CONFIG_PARAMETERS: "'credential.helper='",
|
||||||
},
|
},
|
||||||
branch: { name: "master" },
|
branch: { name: "master" },
|
||||||
options: { repositoryUrl: "http://toto@localhost:2080/git/test-auth.git" },
|
options: { repositoryUrl: "http://toto@localhost:2080/git/test-auth.git" },
|
||||||
@ -707,6 +708,7 @@ test("Use the repository URL as is if none of the given git credentials are vali
|
|||||||
GITLAB_TOKEN: "trash",
|
GITLAB_TOKEN: "trash",
|
||||||
GIT_ASKPASS: "echo",
|
GIT_ASKPASS: "echo",
|
||||||
GIT_TERMINAL_PROMPT: 0,
|
GIT_TERMINAL_PROMPT: 0,
|
||||||
|
GIT_CONFIG_PARAMETERS: "'credential.helper='",
|
||||||
},
|
},
|
||||||
branch: { name: "master" },
|
branch: { name: "master" },
|
||||||
options: { repositoryUrl: dummyUrl },
|
options: { repositoryUrl: dummyUrl },
|
||||||
@ -716,7 +718,7 @@ test("Use the repository URL as is if none of the given git credentials are vali
|
|||||||
});
|
});
|
||||||
|
|
||||||
test("ESM Plugin with named exports", async (t) => {
|
test("ESM Plugin with named exports", async (t) => {
|
||||||
const packageName = "log-secret";
|
const packageName = "plugin-exports";
|
||||||
// Create a git repository, set the current working directory at the root of the repo
|
// Create a git repository, set the current working directory at the root of the repo
|
||||||
t.log("Create git repository");
|
t.log("Create git repository");
|
||||||
const { cwd, repositoryUrl } = await gitbox.createRepo(packageName);
|
const { cwd, repositoryUrl } = await gitbox.createRepo(packageName);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user