@boundfoxstudios/semantic-release-export-data

1.1.0 • Public • Published

@boundfoxstudios/semantic-release-export-data

semantic-release plugin to export variables like the next release version. Also works in --dry-run mode.

npm npm ci semantic-release

Step Description
verifyConditions Set new-release-published as false (will be set later as true if a new release is published)
generateNotes If a new release is published, this will set new-release-published as true and other variables

Install

npm install --save-dev @boundfoxstudios/semantic-release-export-data

OR

yarn add -D @boundfoxstudios/semantic-release-export-data

Usage

The plugin can be configured in the semantic-release configuration file:

{
  "plugins": ["@boundfoxstudios/semantic-release-export-data"]
}

Outputs

Currently, the plugin exports the following GitHub Actions's outputs:

Output Description
new-release-published Whether a new release was published. The return value is in the form of a string. (true or false)
new-release-version If a new release was published, the version of the new release. (e.g. 1.3.0)
new-release-notes If a new release was published, the changelog for the new release.

GitHub Actions Example

name: ci

on:
  push:
    branches: [master]

jobs:
  get-next-version:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16
      - run: npm ci
      - run: npx semantic-release --dry-run
        id: get-next-version
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    outputs:
      new-release-published: ${{ steps.get-next-version.outputs.new-release-published }}
      new-release-version: ${{ steps.get-next-version.outputs.new-release-version }}

  build:
    runs-on: ubuntu-latest
    needs: get-next-version
    if: needs.get-next-version.outputs.new-release-published == 'true'
    steps:
      - uses: actions/checkout@v3
      - run: echo "The new release version is ${{ needs.get-next-version.outputs.new-release-version }}"

  release:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16
      - run: npm ci
      - run: npx semantic-release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Why?

Because of https://github.com/felipecrs/semantic-release-vsce/issues/189#issuecomment-1115021771 and https://github.com/semantic-release/semantic-release/issues/1647.

Thanks

Inspired by the awesome semantic-release-action by @cycjimmy, although this provides the ability of running semantic-release in --dry-run mode, so you don't have to cut a release unless everything else is done.

Readme

Keywords

none

Package Sidebar

Install

npm i @boundfoxstudios/semantic-release-export-data

Weekly Downloads

0

Version

1.1.0

License

MIT

Unpacked Size

6.98 kB

Total Files

4

Last publish

Collaborators

  • boundfoxstudios