1 Commits
Author SHA1 Message Date
CSRBot 1a4c95db23 chore(deps): update dependency mikefarah/yq to v4.53.3
Install yq / install-yq (ubuntu-latest-amd64, amd64, linux) (push) Failing after 7s
Install yq / install-yq (ubuntu-latest-arm64, arm64, linux) (push) Failing after 10s
Markdown linter / markdown-link-checker (push) Successful in 25s
Install yq / install-yq (ubuntu-latest-amd64, amd64, linux) (pull_request) Failing after 8s
Markdown linter / markdown-lint (push) Successful in 35s
Markdown linter / markdown-lint (pull_request) Successful in 28s
Install yq / install-yq (ubuntu-latest-arm64, arm64, linux) (pull_request) Failing after 13s
Markdown linter / markdown-link-checker (pull_request) Successful in 22s
2026-08-16 20:17:49 +00:00
8 changed files with 21 additions and 115 deletions
-70
View File
@@ -1,70 +0,0 @@
name: Auto release tagged
on:
push:
branches: [ "master" ]
paths:
- install-yq.sh
env:
GIT_EMAIL: noreply@cryptic.systems
GIT_USER: CSRBot
jobs:
tag_on_change:
permissions:
actions: write
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
fetch-depth: 0
- name: Check if DC_VERSION line changed
id: check_change
run: |
echo "changed=false" >> $GITHUB_OUTPUT
for file in install-yq.sh; do
if git diff HEAD~1 HEAD -- "${file}" | grep --quiet '^[+-]internal_yq_version'; then
echo "internal_yq_version line changed."
echo "changed=true" >> $GITHUB_OUTPUT
break
fi
done
- name: Stop if no change detected
if: steps.check_change.outputs.changed == 'false'
run: echo "No internal_yq_version change. Exiting..."
- name: Get latest tag
if: steps.check_change.outputs.changed == 'true'
id: get_tag
run: |
latest_tag=$(git tag --sort=-v:refname | grep --extended-regexp '^v[0-9]+\.[0-9]+\.[0-9]+$' | head --lines 1 || echo "v0.0.0")
echo "latest_tag=$latest_tag" >> $GITHUB_OUTPUT
echo "Latest tag: $latest_tag"
- name: Increment patch version
if: steps.check_change.outputs.changed == 'true'
id: bump
run: |
latest_tag="${{ steps.get_tag.outputs.latest_tag }}"
IFS='.' read -r major minor patch <<< "${latest_tag#v}"
patch=$((patch + 1))
new_tag="v${major}.${minor}.${patch}"
echo "new_tag=$new_tag" >> $GITHUB_OUTPUT
echo "New tag: $new_tag"
- name: Create and push new tag
if: steps.check_change.outputs.changed == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
new_tag=${{ steps.bump.outputs.new_tag }}
git config --local user.name "${GIT_USER}"
git config --local user.email "${GIT_EMAIL}"
git tag -a "${new_tag}" -m "${new_tag}"
git push origin "${new_tag}"
+1 -1
View File
@@ -38,6 +38,6 @@ jobs:
YQ_ARCH: ${{ matrix.yq-arch }} YQ_ARCH: ${{ matrix.yq-arch }}
YQ_BINARY_NAME: ${{ inputs.yq-binary-name }} YQ_BINARY_NAME: ${{ inputs.yq-binary-name }}
YQ_DOWNLOAD_URL: ${{ inputs.yq-download-url }} YQ_DOWNLOAD_URL: ${{ inputs.yq-download-url }}
YQ_OS: ${{ matrix.yq-os }} YQ_OS: ${{ matrix .yq-os }}
YQ_VERSION: ${{ inputs.yq-version }} YQ_VERSION: ${{ inputs.yq-version }}
run: ./install-yq.sh run: ./install-yq.sh
+2 -2
View File
@@ -13,7 +13,7 @@ on:
jobs: jobs:
markdown-link-checker: markdown-link-checker:
container: container:
image: docker.io/library/node:26.8.2-alpine image: docker.io/library/node:26.7.0-alpine
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Install tooling - name: Install tooling
@@ -28,7 +28,7 @@ jobs:
markdown-lint: markdown-lint:
container: container:
image: docker.io/library/node:26.8.2-alpine image: docker.io/library/node:26.7.0-alpine
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Install tooling - name: Install tooling
+7 -19
View File
@@ -1,26 +1,23 @@
# ah-annotation # ah-annotation
GitHub Action to generate [ArtifactHub GitHub Action to generate ArtifactHub changelog annotations from Git commit history and add them to `Chart.yaml`.
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 according to [SemVer 2.0](https://semver.org/) (e.g. `-alpha`, `-beta.1`, `-rc.2`) are detected Pre-release tags (matching `-rc`) are detected automatically and result in an `artifacthub.io/prerelease` annotation
automatically and additionally result in an `artifacthub.io/prerelease` annotation. instead.
## Usage ## Usage
### Auto-detect tags ### Auto-detect tags
Without explicit inputs the action uses the currently checked out tag as end tag and the most recent stable Without explicit inputs the action determines the two most recent non-RC tags from the Git history:
(non-pre-release) tag as start tag:
```yaml ```yaml
steps: 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.2.2 - uses: volker.raschek/ah-annotations@v0.0.1
``` ```
### Explicit tags ### Explicit tags
@@ -32,7 +29,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.2.2 - uses: volker.raschek/ah-annotations@v0.0.1
with: with:
old-tag: v1.0.0 old-tag: v1.0.0
new-tag: v2.0.0 new-tag: v2.0.0
@@ -45,7 +42,7 @@ steps:
| `chart-path` | no | `${{ github.workspace }}/Chart.yaml` | Path to the Helm chart file. | | `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.53.6` | Version of yq to install. | | `yq-version` | no | `v4.53.3` | Version of yq to install. |
| `yq-arch` | no | auto-detected | Architecture of yq binary to download. | | `yq-arch` | no | auto-detected | Architecture of yq binary to download. |
| `yq-os` | no | auto-detected | Operating system 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-binary-name` | no | `yq` | Name of the yq binary to download. |
@@ -57,15 +54,6 @@ steps:
- A `Chart.yaml` file must exist at the path specified by `chart-path`. - 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 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 sets
`artifacthub.io/prerelease: "true"` in `Chart.yaml` in addition to the generated changelog.
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 ## Commit type mapping
| Commit type | ArtifactHub kind | | Commit type | ArtifactHub kind |
+1 -1
View File
@@ -35,7 +35,7 @@ inputs:
yq-version: yq-version:
description: "Version of yq to install" description: "Version of yq to install"
required: false required: false
default: "v4.53.6" # renovate: datasource=github-releases depName=mikefarah/yq versioning=semver default: "v4.44.6"
runs: runs:
using: "composite" using: "composite"
+7 -6
View File
@@ -7,7 +7,7 @@
set -euo pipefail set -euo pipefail
readonly CHART_FILE="${CHART_FILE:="Chart.yaml"}" readonly CHART_FILE="${CHART_FILE:="Chart.yaml"}"
readonly PRERELEASE_PATTERN="\-[a-zA-Z0-9]+([-\.][a-zA-Z0-9]+)*$" readonly RC_PATTERN="\-rc([-\.][0-9]+)?$"
CHANGE_LOG_YAML="" CHANGE_LOG_YAML=""
@@ -23,10 +23,9 @@ if [[ ! -f "${CHART_FILE}" ]]; then
exit 1 exit 1
fi fi
# Determine old and new tags. The new tag is the currently checked out one - including prereleases - so that # Determine old and new tags
# prereleases are detected. Only the old tag is restricted to stable releases. DEFAULT_NEW_TAG="$(git tag --sort=-version:refname | grep --invert-match --perl-regexp "${RC_PATTERN}" | head --lines 1)"
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 "${RC_PATTERN}" | head --lines 2 | tail --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 if [[ -n "${INPUT_OLD_TAG:-}" ]]; then
OLD_TAG="${INPUT_OLD_TAG}" OLD_TAG="${INPUT_OLD_TAG}"
@@ -50,8 +49,10 @@ if [[ -z "$(git tag --list "${NEW_TAG}")" ]]; then
exit 1 exit 1
fi fi
if [[ "${NEW_TAG}" =~ ${PRERELEASE_PATTERN} ]]; then if [[ "${NEW_TAG}" =~ ${RC_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}" yq --no-colors --inplace ".annotations.\"artifacthub.io/prerelease\" = \"true\" | sort_keys(.)" "${CHART_FILE}"
exit 0
fi fi
CHANGE_LOG_YAML="$(mktemp)" CHANGE_LOG_YAML="$(mktemp)"
+2 -2
View File
@@ -2,7 +2,7 @@
set -euo pipefail set -euo pipefail
internal_yq_version=v4.53.6 # renovate: datasource=github-releases depName=mikefarah/yq versioning=semver internal_yq_version=v4.53.3 # renovate: datasource=github-releases depName=mikefarah/yq versioning=semver
# Use :- for unset and handle empty strings from composite action inputs # Use :- for unset and handle empty strings from composite action inputs
YQ_BINARY_NAME="${YQ_BINARY_NAME:="yq"}" YQ_BINARY_NAME="${YQ_BINARY_NAME:="yq"}"
@@ -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
dirname "${bin_path}" >> "${GITHUB_PATH}" "$(dirname "${bin_path}")" >> "${GITHUB_PATH}"
fi fi
+1 -14
View File
@@ -38,7 +38,7 @@
"^README\\.md$" "^README\\.md$"
], ],
"matchStrings": [ "matchStrings": [
"yq-version.[ \\t]+\\|[ \\t]+no[ \\t]+\\|[ \\t]+.(?<currentValue>v[\\d]+\\.[\\d]+\\.[\\d]+)" "`(?<currentValue>[^\\s\"']+)`"
], ],
"depNameTemplate": "mikefarah/yq", "depNameTemplate": "mikefarah/yq",
"datasourceTemplate": "github-releases", "datasourceTemplate": "github-releases",
@@ -46,19 +46,6 @@
} }
], ],
"packageRules": [ "packageRules": [
{
"addLabels": [
"renovate/automerge"
],
"automerge": true,
"matchDepNames": [
"mikefarah/yq"
],
"matchUpdateTypes": [
"minor",
"patch"
]
},
{ {
"addLabels": [ "addLabels": [
"renovate/automerge", "renovate/automerge",