Skip to content

go-semantic-release/action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

go-semantic-release/action

The official go-semantic-release GitHub Action.

⚠️ This action always installs the latest release of go-semantic-release. Thus, the version of this repository is not linked to the used go-semantic-release version.

Usage

To integrate go-semantic-release with your GitHub Actions pipeline, specify the name of this repository with a version tag as a step within your workflow config file:

# If a 403 error occurs, make sure to set content permission to write
# see: https://github.com/go-semantic-release/action/issues/27
#permissions:
#  contents: write

steps:
  - uses: actions/checkout@master
  - uses: go-semantic-release/action@v1
    with:
      github-token: ${{ secrets.GITHUB_TOKEN }}

Arguments

Input Description Usage
github-token Used to create releases Required
changelog-file Create a changelog file (e.g CHANGELOG.md) Optional
ghr Create a .ghr file with the parameters for tcnksm/ghr Optional
update-file Update the version of a certain file Optional
dry Do not create a release Optional
prerelease Flags the release as a prerelease Optional
allow-initial-development-versions semantic-release will start your initial development release at 0.1.0 and will handle breaking changes as minor version updates. This option will be ignored if a release with major version greater than or equal 1 exists. Optional
force-bump-patch-version Increments the patch version if no changes are found Optional
changelog-generator-opt Options that are passed to the changelog-generator plugin. Seperated by "," Optional
prepend Flag changes to be prepended into the changelog file Optional
hooks Enable different hooks plugins. Seperated by "," Optional

Example ci.yml for a npm package

name: CI
on:
  push:
    branches:
      - '**'
  pull_request:
    branches:
      - '**'

# If a 403 error occurs, make sure to set content permission to write
# see: https://github.com/go-semantic-release/action/issues/27
#permissions:
#  contents: write

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: true
      matrix:
        node: [10, 12]
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node }}
      - run: npm ci
      - run: npm test
  release:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
        with:
          node-version: 12
          registry-url: 'https://registry.npmjs.org'
      - uses: go-semantic-release/action@v1
        id: semrel
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          update-file: package.json
          changelog-generator-opt: "emojis=true"
      - run: npm publish
        if: steps.semrel.outputs.version != ''
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

License

The MIT License (MIT)

Copyright © 2023 Christoph Witzko