mirror of
https://github.com/cycjimmy/semantic-release-action.git
synced 2025-11-07 10:46:56 +00:00
feat(outputs): Add outputs related to new release version
Add outputs related to new release version - `new-release-version`: Version of the new release - `new-release-major-version`: Major version of the new release - `new-release-minor-version`: Minor version of the new release - `new-release-patch-version`: Patch version of the new release
This commit is contained in:
parent
150d0509de
commit
12a1a39975
4 changed files with 31 additions and 6 deletions
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
|
|
@ -60,9 +60,9 @@ jobs:
|
||||||
env:
|
env:
|
||||||
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||||
|
|
||||||
- name: Push updates to branch v1
|
- name: Push updates to branch for major version
|
||||||
if: steps.semantic.outputs.new-release-published == 'true'
|
if: steps.semantic.outputs.new-release-published == 'true'
|
||||||
run: "git push https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git HEAD:refs/heads/v1"
|
run: "git push https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git HEAD:refs/heads/${steps.semantic.outputs.new-release-major-version}"
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,10 @@ GitHub Action for [Semantic Release](https://github.com/semantic-release/semanti
|
||||||
* `dry_run`: [Optional] Whether to run semantic release in "dry-run" mode. It will override the dryRun attribute in your configuration file. Default `""`.
|
* `dry_run`: [Optional] Whether to run semantic release in "dry-run" mode. It will override the dryRun attribute in your configuration file. Default `""`.
|
||||||
* outputs:
|
* outputs:
|
||||||
* `new-release-published`: Whether a new release was published. `true` or `false`
|
* `new-release-published`: Whether a new release was published. `true` or `false`
|
||||||
|
* `new-release-version`: Version of the new release
|
||||||
|
* `new-release-major-version`: Major version of the new release
|
||||||
|
* `new-release-minor-version`: Minor version of the new release
|
||||||
|
* `new-release-patch-version`: Patch version of the new release
|
||||||
|
|
||||||
A simple example
|
A simple example
|
||||||
```yaml
|
```yaml
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,14 @@ inputs:
|
||||||
outputs:
|
outputs:
|
||||||
new-release-published:
|
new-release-published:
|
||||||
description: 'Whether a new release was published'
|
description: 'Whether a new release was published'
|
||||||
|
new-release-version:
|
||||||
|
description: "Version of the new release"
|
||||||
|
new-release-major-version:
|
||||||
|
description: "Major version of the new release"
|
||||||
|
new-release-minor-version:
|
||||||
|
description: "Minor version of the new release"
|
||||||
|
new-release-patch-version:
|
||||||
|
description: "Patch version of the new release"
|
||||||
runs:
|
runs:
|
||||||
using: 'node12'
|
using: 'node12'
|
||||||
main: 'index.js'
|
main: 'index.js'
|
||||||
|
|
|
||||||
21
src/index.js
21
src/index.js
|
|
@ -3,7 +3,13 @@ const path = require('path');
|
||||||
const core = require('@actions/core');
|
const core = require('@actions/core');
|
||||||
const semanticRelease = require('semantic-release');
|
const semanticRelease = require('semantic-release');
|
||||||
|
|
||||||
const OutputKey_NewReleasePublished = 'new-release-published';
|
const OutputKeys = {
|
||||||
|
newReleasePublished: 'new-release-published',
|
||||||
|
newReleaseVersion: 'new-release-version',
|
||||||
|
newReleaseMajor: 'new-release-major-version',
|
||||||
|
newReleaseMinor: 'new-release-minor-version',
|
||||||
|
newReleasePatch: 'new-release-patch-version',
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* handleDryRunOption
|
* handleDryRunOption
|
||||||
|
|
@ -33,7 +39,7 @@ const release = async () => {
|
||||||
const extraPlugins = core.getInput('extra_plugins', {required: false}) || '';
|
const extraPlugins = core.getInput('extra_plugins', {required: false}) || '';
|
||||||
|
|
||||||
// set outputs default
|
// set outputs default
|
||||||
core.setOutput(OutputKey_NewReleasePublished, 'false');
|
core.setOutput(OutputKeys.newReleasePublished, 'false');
|
||||||
|
|
||||||
// pre-install plugins
|
// pre-install plugins
|
||||||
if (extraPlugins) {
|
if (extraPlugins) {
|
||||||
|
|
@ -71,8 +77,15 @@ const release = async () => {
|
||||||
core.debug(`The release was published with plugin "${release.pluginName}".`);
|
core.debug(`The release was published with plugin "${release.pluginName}".`);
|
||||||
}
|
}
|
||||||
|
|
||||||
// set outputs default
|
const {version} = nextRelease;
|
||||||
core.setOutput(OutputKey_NewReleasePublished, 'true');
|
const [major, minor, patch] = version.split('.');
|
||||||
|
|
||||||
|
// set outputs
|
||||||
|
core.setOutput(OutputKeys.newReleasePublished, 'true');
|
||||||
|
core.setOutput(OutputKeys.newReleaseVersion, version);
|
||||||
|
core.setOutput(OutputKeys.newReleaseMajor, major);
|
||||||
|
core.setOutput(OutputKeys.newReleaseMinor, minor);
|
||||||
|
core.setOutput(OutputKeys.newReleasePatch, patch);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue