Compare commits
7
Commits
68d8884ddd
...
v0.1.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d5154c8f3c
|
||
|
|
2d35007630 | ||
|
|
f2c542c849
|
||
|
|
1f3c3084cb
|
||
|
|
896608c49c
|
||
|
|
f51c290f04
|
||
|
|
6f174f4aac
|
@@ -1,6 +1,8 @@
|
|||||||
# ah-annotation
|
# ah-annotation
|
||||||
|
|
||||||
GitHub Action to generate ArtifactHub changelog annotations from Git commit history and add them to `Chart.yaml`.
|
GitHub Action to generate [ArtifactHub
|
||||||
|
annotations](https://artifacthub.io/docs/topics/annotations/helm/#supported-annotations) from Git commit history and add
|
||||||
|
them to `Chart.yaml`.
|
||||||
|
|
||||||
The action parses conventional commit messages between two Git tags and produces an `artifacthub.io/changes` annotation.
|
The action parses conventional commit messages between two Git tags and produces an `artifacthub.io/changes` annotation.
|
||||||
Pre-release tags (matching `-rc`) are detected automatically and result in an `artifacthub.io/prerelease` annotation
|
Pre-release tags (matching `-rc`) are detected automatically and result in an `artifacthub.io/prerelease` annotation
|
||||||
@@ -17,7 +19,7 @@ steps:
|
|||||||
- uses: actions/checkout@v7.0.1
|
- uses: actions/checkout@v7.0.1
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: volker.raschek/ah-annotations@v0.0.1
|
- uses: volker.raschek/ah-annotations@v0.1.1
|
||||||
```
|
```
|
||||||
|
|
||||||
### Explicit tags
|
### Explicit tags
|
||||||
@@ -29,7 +31,7 @@ steps:
|
|||||||
- uses: actions/checkout@v7.0.1
|
- uses: actions/checkout@v7.0.1
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: volker.raschek/ah-annotations@v0.0.1
|
- uses: volker.raschek/ah-annotations@v0.1.1
|
||||||
with:
|
with:
|
||||||
old-tag: v1.0.0
|
old-tag: v1.0.0
|
||||||
new-tag: v2.0.0
|
new-tag: v2.0.0
|
||||||
@@ -38,16 +40,33 @@ steps:
|
|||||||
## Inputs
|
## Inputs
|
||||||
|
|
||||||
| Name | Required | Default | Description |
|
| Name | Required | Default | Description |
|
||||||
| --------- | -------- | ------------- | ------------------------------------ |
|
| ------------------ | -------- | ------------------------------------ | ------------------------------------------ |
|
||||||
|
| `chart-path` | no | `${{ github.workspace }}/Chart.yaml` | Path to the Helm chart file. |
|
||||||
| `old-tag` | no | auto-detected | Start tag for changelog generation. |
|
| `old-tag` | no | auto-detected | Start tag for changelog generation. |
|
||||||
| `new-tag` | no | auto-detected | End tag for changelog generation. |
|
| `new-tag` | no | auto-detected | End tag for changelog generation. |
|
||||||
|
| `yq-version` | no | `v4.44.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. |
|
||||||
|
| `yq-download-url` | no | auto-built | Full URL to download yq from. |
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- The repository must be checked out with full history (`fetch-depth: 0`).
|
- The repository must be checked out with full history (`fetch-depth: 0`).
|
||||||
- A `Chart.yaml` file must exist in the working directory.
|
- A `Chart.yaml` file must exist at the path specified by `chart-path`.
|
||||||
- Commit messages must follow the [Conventional Commits](https://www.conventionalcommits.org/) format.
|
- Commit messages must follow the [Conventional Commits](https://www.conventionalcommits.org/) format.
|
||||||
|
|
||||||
|
## Pre-releases
|
||||||
|
|
||||||
|
Tags matching the pattern `-rc` (e.g. `v1.0.0-rc.1`, `v2.0.0-rc`) are treated as pre-releases.
|
||||||
|
When `new-tag` is a pre-release tag, the action:
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
## Commit type mapping
|
## Commit type mapping
|
||||||
|
|
||||||
| Commit type | ArtifactHub kind |
|
| Commit type | ArtifactHub kind |
|
||||||
|
|||||||
+5
-1
@@ -2,6 +2,10 @@ name: "ArtifactHub Annotations"
|
|||||||
description: "Generate ArtifactHub changelog annotations from git commit history and add them to Chart.yaml"
|
description: "Generate ArtifactHub changelog annotations from git commit history and add them to Chart.yaml"
|
||||||
|
|
||||||
inputs:
|
inputs:
|
||||||
|
chart-path:
|
||||||
|
description: "Path to the Helm chart file"
|
||||||
|
default: "${{ github.workspace }}/Chart.yaml"
|
||||||
|
required: false
|
||||||
old-tag:
|
old-tag:
|
||||||
description: "Start tag for changelog generation. If not set, auto-detected from git tags."
|
description: "Start tag for changelog generation. If not set, auto-detected from git tags."
|
||||||
required: false
|
required: false
|
||||||
@@ -49,7 +53,7 @@ runs:
|
|||||||
- name: Add ArtifactHub annotations
|
- name: Add ArtifactHub annotations
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
env:
|
||||||
|
CHART_FILE: ${{ inputs.chart-path }}
|
||||||
INPUT_OLD_TAG: ${{ inputs.old-tag }}
|
INPUT_OLD_TAG: ${{ inputs.old-tag }}
|
||||||
INPUT_NEW_TAG: ${{ inputs.new-tag }}
|
INPUT_NEW_TAG: ${{ inputs.new-tag }}
|
||||||
run: "${GITHUB_ACTION_PATH}/add-annotations.sh"
|
run: "${GITHUB_ACTION_PATH}/add-annotations.sh"
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
readonly CHART_FILE="Chart.yaml"
|
readonly CHART_FILE="${CHART_FILE:="Chart.yaml"}"
|
||||||
readonly RC_PATTERN="\-rc([-\.][0-9]+)?$"
|
readonly RC_PATTERN="\-rc([-\.][0-9]+)?$"
|
||||||
|
|
||||||
CHANGE_LOG_YAML=""
|
CHANGE_LOG_YAML=""
|
||||||
|
|||||||
+1
-1
@@ -78,5 +78,5 @@ echo "INFO: Installed ${yq_installed_version} in ${bin_path}"
|
|||||||
|
|
||||||
# Ensure yq is in PATH for subsequent steps
|
# Ensure yq is in PATH for subsequent steps
|
||||||
if [[ -n "${GITHUB_PATH:-}" ]]; then
|
if [[ -n "${GITHUB_PATH:-}" ]]; then
|
||||||
echo "$(dirname "${bin_path}")" >> "${GITHUB_PATH}"
|
dirname "${bin_path}" >> "${GITHUB_PATH}"
|
||||||
fi
|
fi
|
||||||
@@ -31,6 +31,18 @@
|
|||||||
"depNameTemplate": "actions/checkout",
|
"depNameTemplate": "actions/checkout",
|
||||||
"datasourceTemplate": "github-releases",
|
"datasourceTemplate": "github-releases",
|
||||||
"versioningTemplate": "semver"
|
"versioningTemplate": "semver"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"customType": "regex",
|
||||||
|
"fileMatch": [
|
||||||
|
"^README\\.md$"
|
||||||
|
],
|
||||||
|
"matchStrings": [
|
||||||
|
"`(?<currentValue>[^\\s\"']+)`"
|
||||||
|
],
|
||||||
|
"depNameTemplate": "mikefarah/yq",
|
||||||
|
"datasourceTemplate": "github-releases",
|
||||||
|
"versioningTemplate": "semver"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packageRules": [
|
"packageRules": [
|
||||||
|
|||||||
Reference in New Issue
Block a user