Skip to content
You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
tag

GitHub Action

Create Release

v1.9.0

Create Release

tag

Create Release

Creates github releases

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Create Release

uses: ncipollo/[email protected]

Learn more about this action in ncipollo/release-action

Choose a version

Release Action

This action will create a GitHub release and optionally upload an artifact to it.

Action Inputs

  • allowUpdates: An optional flag which indicates if we should update a release if it already exists. Defaults to false.
  • artifactErrorsFailBuild: An optional flag which indicates if artifact read or upload errors should fail the build.
  • artifact (deprecated): An optional set of paths representing artifacts to upload to the release. This may be a single path or a comma delimited list of paths (or globs).
  • artifacts: An optional set of paths representing artifacts to upload to the release. This may be a single path or a comma delimited list of paths (or globs).
  • artifactContentType: The content type of the artifact. Defaults to raw.
  • body: An optional body for the release.
  • bodyFile: An optional body file for the release. This should be the path to the file.
  • commit: An optional commit reference. This will be used to create the tag if it does not exist.
  • discussionCategory: When provided this will generate a discussion of the specified category. The category must exist otherwise this will cause the action to fail. This isn't used with draft releases.
  • draft: Optionally marks this release as a draft release. Set to true to enable.
  • generateReleaseNotes: Indicates if release notes should be automatically generated. Set to true to enable.
  • name: An optional name for the release. If this is omitted the tag will be used.
  • omitBody: Indicates if the release body should be omitted.
  • omitBodyDuringUpdate: Indicates if the release body should be omitted during updates. The body will still be applied for newly created releases. This will preserve the existing body during updates.
  • omitName: Indicates if the release name should be omitted.
  • omitNameDuringUpdate: Indicates if the release name should be omitted during updates. The name will still be applied for newly created releases. This will preserve the existing name during updates.
  • omitPrereleaseDuringUpdate: Indicates if the prerelease flag should be omitted during updates. The prerelease flag will still be applied for newly created releases. This will preserve the existing prerelease state during updates.
  • owner: Optionally specify the owner of the repo where the release should be generated. Defaults to current repo's owner. Example - ncipollo.
  • prerelease: Optionally marks this release as prerelease. Set to true to enable.
  • removeArtifacts: Indicates if existing release artifacts should be removed. Defaults to false.
  • replacesArtifacts: Indicates if existing release artifacts should be replaced. Defaults to true.
  • repo: Optionally specify the repo where the release should be generated. Defaults to current repo. Example - release-action.
  • tag: An optional tag for the release. If this is omitted the git ref will be used (if it is a tag).
  • token: The GitHub token. Typically, this will be ${{ secrets.GITHUB_TOKEN }}. If you are using a personal access token it should have access to the repo scope.

Action Outputs

  • id: The identifier of the created release.
  • html_url: The HTML URL of the release.
  • upload_url: The URL for uploading assets to the release.

Example

This example will create a release when a tag is pushed:

name: Releases

on: 
  push:
    tags:
    - '*'

jobs:

  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: ncipollo/release-action@v1
      with:
        artifacts: "release.tar.gz,foo/*.txt"
        bodyFile: "body.md"
        token: ${{ secrets.GITHUB_TOKEN }}

Notes

  • You must provide a tag either via the action input or the git ref (i.e push / create a tag). If you do not provide a tag the action will fail.
  • If the tag of the release you are creating does not yet exist, you should set both the tag and commit action inputs. commit can point to a commit hash or a branch name (ex - main).