Compare commits

..
1 Commits
Author SHA1 Message Date
Matt Travi 97dc680536 ci(windows): added windows to the os matrix
in hopes of reproducing https://github.com/semantic-release/semantic-release/issues/2658
2023-01-09 17:02:32 -06:00
14 changed files with 3593 additions and 3936 deletions
+1 -7
View File
@@ -6,14 +6,8 @@ name: Release
- next
- beta
- "*.x"
permissions:
contents: read # for checkout
jobs:
release:
permissions:
contents: write # to be able to publish a GitHub release
issues: write # to be able to comment on released issues
pull-requests: write # to be able to comment on released pull requests
name: release
runs-on: ubuntu-latest
steps:
@@ -21,7 +15,7 @@ jobs:
- uses: actions/setup-node@v3
with:
cache: npm
node-version: lts/*
node-version: 16
- run: npm ci
- run: npx semantic-release
env:
+4 -5
View File
@@ -12,9 +12,6 @@ on:
- opened
- synchronize
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
test_matrix:
strategy:
@@ -22,9 +19,11 @@ jobs:
node-version:
- 18.0.0
- 19
os:
- ubuntu-latest
- windows-latest
runs-on: ubuntu-latest
timeout-minutes: 10
runs-on: "${{ matrix.os }}"
steps:
- uses: actions/checkout@v3
+1 -1
View File
@@ -25,7 +25,7 @@ See https://github.com/semantic-release/semantic-release/blob/master/docs/suppor
execa("git", ["--version"])
.then(({ stdout }) => {
const gitVersion = findVersions(stdout, { loose: true })[0];
const gitVersion = findVersions(stdout)[0];
if (lt(gitVersion, MIN_GIT_VERSION)) {
console.error(`[semantic-release]: Git version ${MIN_GIT_VERSION} is required. Found ${gitVersion}.`);
process.exit(1);
-3
View File
@@ -171,6 +171,3 @@
- `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.
- `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
@@ -29,11 +29,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v2
with:
node-version: "lts/*"
- name: Install dependencies
@@ -62,7 +62,7 @@ The Git history of the repository is now:
We now decide to work on another future major release, in parallel of the beta one, which will also be composed of multiple features, some of them being breaking changes.
To implement that workflow we can create the branch `alpha` from the branch `beta` and commit our first feature there. When pushing that commit, **semantic-release** will publish the pre-release version `3.0.0-alpha.1` on the dist-tag `@alpha`. That allow us to run integration tests by installing our module with `npm install example-module@alpha`. Other users installing with `npm install example-module` will still receive the version `1.0.1`.
To implement that workflow we can create the branch `alpha` from the branch `beta` and commit our first feature there. When pushing that commit, **semantic-release** will publish the pre-release version `3.0.0-alpha.1` on the dist-tag `@alpha`. That allow us to run integration tests by installing our module with `npm install example-module@alpha`. Other users installing with `npm install example-module` will still receive the version `1.0.0`.
The Git history of the repository is now:
+1 -1
View File
@@ -24,7 +24,7 @@ See [CI configuration](../usage/ci-configuration.md) and [CI configuration recip
Use it to execute the `semantic-release` command.
```bash
$ npx -p node@v18-lts -c "npx semantic-release"
$ npx -p node@lts -c "npx semantic-release"
```
**Note**: See [What is npx](./FAQ.md#what-is-npx) for more details.
+1 -1
View File
@@ -12,7 +12,7 @@ See [Release workflow recipes](../recipes/release-workflow/README.md#release-wor
The release workflow is configured via the [branches option](./configuration.md#branches) which accepts a single or an array of branch definitions.
Each branch can be defined either as a string, a [glob](https://github.com/micromatch/micromatch#matching-features) or an object. For string and glob definitions each [property](#branches-properties) will be defaulted.
A branch can be defined as one of three types:
A branch can defined as one of three types:
- [release](#release-branches): to make releases on top of the last version released
- [maintenance](#maintenance-branches): to make releases on top of an old release
+3 -12
View File
@@ -52,18 +52,9 @@ export async function loadPlugin({cwd}, name, pluginsPath) {
? dirname(resolveFrom.silent(__dirname, pluginsPath[name]) || resolveFrom(cwd, pluginsPath[name]))
: __dirname;
if (isFunction(name)) {
return name;
}
const file = resolveFrom.silent(basePath, name) || resolveFrom(cwd, name);
const { default: cjsExport, ...esmNamedExports } = await import(`file://${file}`);
if (cjsExport) {
return cjsExport;
}
return esmNamedExports;
// See https://github.com/mysticatea/eslint-plugin-node/issues/250
// eslint-disable-next-line node/no-unsupported-features/es-syntax
return isFunction(name) ? name : (await import(resolveFrom.silent(basePath, name) || resolveFrom(cwd, name))).default;
}
export function parseConfig(plugin) {
+3568 -3854
View File
File diff suppressed because it is too large Load Diff
+10 -10
View File
@@ -32,16 +32,16 @@
"@semantic-release/npm": "^9.0.0",
"@semantic-release/release-notes-generator": "^10.0.0",
"aggregate-error": "^4.0.1",
"cosmiconfig": "^8.0.0",
"cosmiconfig": "^7.0.0",
"debug": "^4.0.0",
"env-ci": "^8.0.0",
"execa": "^7.0.0",
"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": "^3.0.0",
"hosted-git-info": "^6.0.0",
"hosted-git-info": "^5.1.0",
"lodash-es": "^4.17.21",
"marked": "^4.1.0",
"marked-terminal": "^5.1.1",
@@ -51,29 +51,29 @@
"read-pkg-up": "^9.1.0",
"resolve-from": "^5.0.0",
"semver": "^7.3.2",
"semver-diff": "^4.0.0",
"semver-diff": "^3.1.1",
"signale": "^1.2.1",
"yargs": "^17.5.1"
},
"devDependencies": {
"ava": "5.2.0",
"ava": "4.3.3",
"c8": "7.12.0",
"clear-module": "4.1.2",
"codecov": "3.8.3",
"delay": "5.0.0",
"dockerode": "3.3.4",
"file-url": "^4.0.0",
"fs-extra": "^11.0.0",
"fs-extra": "^10.1.0",
"got": "^12.5.0",
"js-yaml": "4.1.0",
"mockserver-client": "5.15.0",
"nock": "13.3.0",
"mockserver-client": "5.14.0",
"nock": "13.2.9",
"p-retry": "^5.1.1",
"prettier": "^2.7.1",
"sinon": "15.0.1",
"sinon": "14.0.0",
"stream-buffers": "3.0.2",
"tempy": "^3.0.0",
"testdouble": "3.16.8"
"testdouble": "3.16.6"
},
"engines": {
"node": ">=18"
-3
View File
@@ -1,3 +0,0 @@
export async function verifyConditions(pluginConfig, context) {
context.logger.log("verifyConditions called");
}
-24
View File
@@ -44,7 +44,6 @@ const cli = path.resolve("./bin/semantic-release.js");
const pluginError = path.resolve("./test/fixtures/plugin-error");
const pluginInheritedError = path.resolve("./test/fixtures/plugin-error-inherited");
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.start(), npmRegistry.start(), mockServer.start()]);
@@ -714,26 +713,3 @@ test("Use the repository URL as is if none of the given git credentials are vali
dummyUrl
);
});
test("ESM Plugin with named exports", async (t) => {
const packageName = "plugin-exports";
// Create a git repository, set the current working directory at the root of the repo
t.log("Create git repository");
const { cwd, repositoryUrl } = await gitbox.createRepo(packageName);
await writeJson(path.resolve(cwd, "package.json"), {
name: packageName,
version: "0.0.0-dev",
repository: { url: repositoryUrl },
release: { plugins: [pluginEsmNamedExports] },
});
t.log("$ semantic-release");
const { stdout, stderr } = await execa(cli, [], {
env: { ...env, MY_TOKEN: "secret token" },
cwd,
reject: false,
extendEnv: false,
});
t.regex(stdout, new RegExp(`verifyConditions called`));
});
+1 -12
View File
@@ -199,18 +199,7 @@ test('loadPlugin', async (t) => {
await loadPlugin({cwd}, './plugin-noop.cjs', {'./plugin-noop.cjs': './test/fixtures'}),
'From a shareable config context'
);
t.is(
(await import("../fixtures/plugin-noop.cjs")).default,
await loadPlugin({ cwd }, "./plugin-noop.cjs", { "./plugin-noop.cjs": "./test/fixtures" }),
"From a shareable config context"
);
const { ...namedExports } = await import("../fixtures/plugin-esm-named-exports.js");
const plugin = await loadPlugin({ cwd }, "./plugin-esm-named-exports.js", {
"./plugin-esm-named-exports.js": "./test/fixtures",
});
t.deepEqual(namedExports, plugin, "ESM with named exports");
t.is(func, await loadPlugin({ cwd }, func, {}), "Defined as a function");
t.is(func, await loadPlugin({cwd}, func, {}), 'Defined as a function');
});
test('parseConfig', (t) => {