Create or refresh a GitHub release from Release Drafter or from explicit release inputs. The release is published by default after optional changelog summarization and asset upload succeed.
- uses: hoverkraft-tech/ci-github-publish/actions/release/create@b2562b46714e535a0113f90f554b55e1248212c1 # 0.26.3
with:
# Whether the release is a prerelease
# Default: `false`
prerelease: "false"
# Working directory used to scope release automation in a monorepo.
# If specified, the action looks for `.github/release-configs/{slug}.yml`, where `slug` is derived from the working directory basename.
# If that file does not exist, a temporary release configuration is generated with `include-paths` for the working directory and current workflow file.
working-directory: ""
# Additional paths to include in the release notes filtering (JSON array).
# These paths are added to the `include-paths` configuration of release-drafter.
#
# Default: `[]`
include-paths: "[]"
# Release tag name to use in explicit mode
tag: ""
# Optional commit SHA or branch name to target when explicit mode creates a release for a tag that does not already exist. Forwarded to Release Drafter as `commitish`.
target-sha: ""
# GitHub Token for creating the draft release.
# Permissions:
# - contents: write
# - pull-requests: read
#
# Default: `${{ github.token }}`
github-token: ${{ github.token }}
# Skip creating or updating the draft release when no changes are detected since the latest relevant published release.
# In Release Drafter mode, detection respects the configured release filters such as `working-directory` and `include-paths`.
#
# Default: `false`
skip-if-no-changes: "false"
# Optional JSON-serialized configuration used to generate and prepend a release summary to the drafted release notes.
# When provided, the action summarizes the changelog body returned by release-drafter, then updates the draft release body to include the summary above the full changelog.
# Supported properties:
# - llmAuth (required)
# - llmProvider (optional, default: `openai`)
# - llmModel (optional, default: `gpt-5.4`)
# - llmConfig (optional object or JSON string forwarded to `release/summarize-changelog`)
# - workingDirectory (optional, default: `working-directory` input or `.`)
# - summaryTemplate (optional template forwarded to `release/summarize-changelog`)
#
# See: [`release/summarize-changelog` action inputs](../summarize-changelog/README.md) for details on the summarization configuration.
#
# Example value:
#
# ```json
# {
# "llmAuth": "$\{{ secrets.OPENAI_API_KEY }}",
# "llmProvider": "openai",
# "llmModel": "gpt-5.4",
# }
# ```
changelog-summary: ""
# Optional workflow artifact ID containing files to upload as GitHub release assets after the draft release is created or updated.
# The artifact is downloaded automatically before upload.
# Prefer `actions/release/update` when you only need to mutate an existing release.
release-artifact-id: ""
# Whether to publish the release after changelog and asset updates succeed.
# When disabled, the release remains a draft.
#
# Default: `true`
publish: "true"| Input | Description | Required | Default |
|---|---|---|---|
prerelease |
Whether the release is a prerelease | false | false |
working-directory |
Working directory used to scope release automation in a monorepo. | false | - |
If specified, the action looks for .github/release-configs/{slug}.yml, where slug is derived from the working directory basename. |
|||
If that file does not exist, a temporary release configuration is generated with include-paths for the working directory and current workflow file. |
|||
include-paths |
Additional paths to include in the release notes filtering (JSON array). | false | [] |
These paths are added to the include-paths configuration of release-drafter. |
|||
tag |
Release tag name to use in explicit mode | false | - |
target-sha |
Optional commit SHA or branch name to target when explicit mode creates a release for a tag that does not already exist. Forwarded to Release Drafter as commitish. |
false | - |
github-token |
GitHub Token for creating the draft release. | false | ${{ github.token }} |
| Permissions: | |||
| - contents: write | |||
| - pull-requests: read | |||
skip-if-no-changes |
Skip creating or updating the draft release when no changes are detected since the latest relevant published release. | false | false |
In Release Drafter mode, detection respects the configured release filters such as working-directory and include-paths. |
|||
changelog-summary |
Optional JSON-serialized configuration used to generate and prepend a release summary to the drafted release notes. | false | - |
| When provided, the action summarizes the changelog body returned by release-drafter, then updates the draft release body to include the summary above the full changelog. | |||
| Supported properties: | |||
| - llmAuth (required) | |||
- llmProvider (optional, default: openai) |
|||
- llmModel (optional, default: gpt-5.4) |
|||
- llmConfig (optional object or JSON string forwarded to release/summarize-changelog) |
|||
- workingDirectory (optional, default: working-directory input or .) |
|||
- summaryTemplate (optional template forwarded to release/summarize-changelog) |
|||
See: release/summarize-changelog action inputs for details on the summarization configuration. |
|||
| Example value: | |||
{
"llmAuth": "${{ secrets.OPENAI_API_KEY }}",
"llmProvider": "openai",
"llmModel": "gpt-5.4",
} |
|||
release-artifact-id |
Optional workflow artifact ID containing files to upload as GitHub release assets after the draft release is created or updated. | false | - |
| The artifact is downloaded automatically before upload. | |||
Prefer actions/release/update when you only need to mutate an existing release. |
|||
publish |
Whether to publish the release after changelog and asset updates succeed. | false | true |
| When disabled, the release remains a draft. |
| Output | Description |
|---|---|
tag |
The tag of the release |
This action creates or refreshes the release as a draft first, then publishes it by default after all requested summary and asset updates succeed. Set publish to false to keep the release as a draft.
When changelog-summary is provided, the action summarizes the drafted changelog body with release/summarize-changelog and prepends the generated summary above the drafted release notes.
When release-artifact-id is provided, the action uploads the downloaded artifact files as release assets during release creation or refresh.
For mutating an existing release after creation, prefer release/update.
Contributions are welcome! Please see the contributing guidelines for more details.
This project is licensed under the MIT License.
SPDX-License-Identifier: MIT
Copyright © 2026 hoverkraft
For more details, see the license.
This documentation was automatically generated by CI Dokumentor.