Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
db3cdb4828
|
||
|
|
2aafefadbc | ||
|
|
9c214fc134
|
||
|
|
fdb0acacf9 | ||
|
|
d2573709ee
|
||
|
|
7959e52208 | ||
|
|
8bb52c9806
|
||
|
|
28a065318a | ||
|
|
aa07ea131e
|
@@ -13,7 +13,7 @@ on:
|
||||
jobs:
|
||||
markdown-link-checker:
|
||||
container:
|
||||
image: docker.io/library/node:26.7.0-alpine
|
||||
image: docker.io/library/node:26.8.2-alpine
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Install tooling
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
|
||||
markdown-lint:
|
||||
container:
|
||||
image: docker.io/library/node:26.7.0-alpine
|
||||
image: docker.io/library/node:26.8.2-alpine
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Install tooling
|
||||
|
||||
@@ -6,20 +6,21 @@ them to `Chart.yaml`.
|
||||
|
||||
The action parses conventional commit messages between two Git tags and produces an `artifacthub.io/changes` annotation.
|
||||
Pre-release tags according to [SemVer 2.0](https://semver.org/) (e.g. `-alpha`, `-beta.1`, `-rc.2`) are detected
|
||||
automatically and result in an `artifacthub.io/prerelease` annotation instead.
|
||||
automatically and additionally result in an `artifacthub.io/prerelease` annotation.
|
||||
|
||||
## Usage
|
||||
|
||||
### Auto-detect tags
|
||||
|
||||
Without explicit inputs the action determines the two most recent stable (non-pre-release) tags from the Git history:
|
||||
Without explicit inputs the action uses the currently checked out tag as end tag and the most recent stable
|
||||
(non-pre-release) tag as start tag:
|
||||
|
||||
```yaml
|
||||
steps:
|
||||
- uses: actions/checkout@v7.0.1
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: volker.raschek/ah-annotations@v0.2.0
|
||||
- uses: volker.raschek/ah-annotations@v0.2.2
|
||||
```
|
||||
|
||||
### Explicit tags
|
||||
@@ -31,7 +32,7 @@ steps:
|
||||
- uses: actions/checkout@v7.0.1
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: volker.raschek/ah-annotations@v0.2.0
|
||||
- uses: volker.raschek/ah-annotations@v0.2.2
|
||||
with:
|
||||
old-tag: v1.0.0
|
||||
new-tag: v2.0.0
|
||||
@@ -44,7 +45,7 @@ steps:
|
||||
| `chart-path` | no | `${{ github.workspace }}/Chart.yaml` | Path to the Helm chart file. |
|
||||
| `old-tag` | no | auto-detected | Start tag for changelog generation. |
|
||||
| `new-tag` | no | auto-detected | End tag for changelog generation. |
|
||||
| `yq-version` | no | `v4.53.4` | Version of yq to install. |
|
||||
| `yq-version` | no | `v4.53.6` | Version of yq to install. |
|
||||
| `yq-arch` | no | auto-detected | Architecture of yq binary to download. |
|
||||
| `yq-os` | no | auto-detected | Operating system of yq binary to download. |
|
||||
| `yq-binary-name` | no | `yq` | Name of the yq binary to download. |
|
||||
@@ -59,13 +60,11 @@ steps:
|
||||
## Pre-releases
|
||||
|
||||
Tags containing a hyphen-separated pre-release identifier according to [SemVer 2.0](https://semver.org/) are treated as
|
||||
pre-releases (e.g. `v1.0.0-alpha`, `v1.0.0-beta.1`, `v2.0.0-rc.2`). When `new-tag` is a pre-release tag, the action:
|
||||
pre-releases (e.g. `v1.0.0-alpha`, `v1.0.0-beta.1`, `v2.0.0-rc.2`). When `new-tag` is a pre-release tag, the action sets
|
||||
`artifacthub.io/prerelease: "true"` in `Chart.yaml` in addition to the generated changelog.
|
||||
|
||||
1. Sets `artifacthub.io/prerelease: "true"` in `Chart.yaml`.
|
||||
2. Skips changelog generation entirely.
|
||||
|
||||
When auto-detecting tags (no explicit `old-tag`/`new-tag`), the action ignores pre-release tags and selects the two
|
||||
most recent stable tags instead.
|
||||
When auto-detecting tags (no explicit `old-tag`/`new-tag`), the end tag is the tag of the checked out commit - including
|
||||
pre-releases - while the start tag is always the most recent stable tag.
|
||||
|
||||
## Commit type mapping
|
||||
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ inputs:
|
||||
yq-version:
|
||||
description: "Version of yq to install"
|
||||
required: false
|
||||
default: "v4.53.4" # renovate: datasource=github-releases depName=mikefarah/yq versioning=semver
|
||||
default: "v4.53.6" # renovate: datasource=github-releases depName=mikefarah/yq versioning=semver
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
|
||||
+3
-4
@@ -23,8 +23,9 @@ if [[ ! -f "${CHART_FILE}" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Determine old and new tags
|
||||
DEFAULT_NEW_TAG="$(git tag --sort=-version:refname | grep --invert-match --perl-regexp "${PRERELEASE_PATTERN}" | head --lines 1)"
|
||||
# Determine old and new tags. The new tag is the currently checked out one - including prereleases - so that
|
||||
# prereleases are detected. Only the old tag is restricted to stable releases.
|
||||
DEFAULT_NEW_TAG="$(git describe --tags --exact-match HEAD 2>/dev/null || git tag --sort=-version:refname | head --lines 1)"
|
||||
DEFAULT_OLD_TAG="$(git tag --sort=-version:refname | grep --invert-match --perl-regexp "${PRERELEASE_PATTERN}" | head --lines 2 | tail --lines 1)"
|
||||
|
||||
if [[ -n "${INPUT_OLD_TAG:-}" ]]; then
|
||||
@@ -50,9 +51,7 @@ if [[ -z "$(git tag --list "${NEW_TAG}")" ]]; then
|
||||
fi
|
||||
|
||||
if [[ "${NEW_TAG}" =~ ${PRERELEASE_PATTERN} ]]; then
|
||||
echo "INFO: Tag '${NEW_TAG}' is a prerelease, setting prerelease annotation and skipping changelog."
|
||||
yq --no-colors --inplace ".annotations.\"artifacthub.io/prerelease\" = \"true\" | sort_keys(.)" "${CHART_FILE}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
CHANGE_LOG_YAML="$(mktemp)"
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
internal_yq_version=v4.53.4 # renovate: datasource=github-releases depName=mikefarah/yq versioning=semver
|
||||
internal_yq_version=v4.53.6 # renovate: datasource=github-releases depName=mikefarah/yq versioning=semver
|
||||
|
||||
# Use :- for unset and handle empty strings from composite action inputs
|
||||
YQ_BINARY_NAME="${YQ_BINARY_NAME:="yq"}"
|
||||
|
||||
Reference in New Issue
Block a user