5
0
Fork 0
mirror of https://github.com/cycjimmy/semantic-release-action.git synced 2025-11-07 18:56: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:
cycjimmy 2019-10-21 09:46:25 +08:00
parent 150d0509de
commit 12a1a39975
4 changed files with 31 additions and 6 deletions

View file

@ -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 }}

View file

@ -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

View file

@ -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'

View file

@ -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);
}; };