Files
helm-charts/.github/workflows/change-app-version.yml
T
jklein cbddba6972
Validate Helm Charts / Detect changed charts (pull_request) Successful in 4s
Validate Helm Charts / Resource quantities (pull_request) Successful in 8s
Validate Helm Charts / Build ${{ fromJSON(needs.detect-changed-charts.outputs.charts) }} (pull_request) Successful in 32s
Validate Helm Charts / Trivy config ${{ fromJSON(needs.detect-changed-charts.outputs.scan-charts) }} (pull_request) Successful in 1m24s
Validate Helm Charts / Install-test ${{ fromJSON(needs.detect-changed-charts.outputs.install-charts) }} (pull_request) Failing after 16m52s
Replace the obsolete no-dependencies rationale in every chart helper
The doc comments on the resources and defaultedDict helpers justified the
copy-per-chart with "charts in this repo deliberately have no dependencies".
That rule fell with #214: a dependency is admissible now, just expensive, and
it sits in the README as guideline 14, not 13. The justification still holds,
but its reason is a different one - sharing the helper would mean a library
chart, a second artefact to publish, version and pull for something that
changes about once a year. searxng got that wording in PR #38; this carries it
to the remaining 22 charts, 41 occurrences in all.

Comments only: every touched chart renders byte-identical against its
ci/<chart>/test-values.yaml. Each published chart takes a patch bump,
appVersion and +up suffix untouched; template-chart is never published and
takes none, but is corrected because every new chart inherits from it.

Two repo files carried the same claim at no version cost:
validate-charts.yml explained the all-charts quantity render test with it, and
change-app-version.yml still counted nine images for freesailarr - MediathekArr
made it ten.
2026-09-26 21:42:49 +00:00

106 lines
3.9 KiB
YAML

name: Change App-Version
on:
workflow_dispatch:
inputs:
app-version:
required: true
type: string
description: "change the version of the underlying application"
chart-location:
required: false
type: string
default: "."
description: "location of the helm chart"
chart-name:
required: true
type: choice
description: "helm chart to be updated"
options:
- zipline
- calibre-web-automated
- samba
- teamspeak-server
- urlaubsverwaltung
- apache-tika
- gotenberg
- homeassistant
- satisfactory
- cyberchef
- matrix-synapse
- outline
- paperless-ngx
- patchmon
- rallly
- voucher-vault
- minecraft-router
- minecraft-server
- rss-bridge
- searxng
- bentopdf
- ytdlp-web-player
- sure
# freesailarr is deliberately absent: none of its ten images takes
# its tag from appVersion (they are all pinned in its values.yaml),
# so this workflow would rewrite appVersion and republish the chart
# without changing a single deployed image. Update its images through
# a Renovate PR, and its appVersion by hand.
workflow_call:
inputs:
app-version:
required: true
type: string
description: "change the version of the underlying application"
chart-location:
required: false
type: string
default: "."
description: "location of the helm chart"
chart-name:
required: true
type: string
description: "name of the helm chart"
jobs:
change-app-version:
runs-on: ubuntu-latest
steps:
- name: "Configure OP-Connect"
uses: 1password/load-secrets-action/configure@v5
with:
connect-host: https://op-connect.jk-dev.de
- name: "Load GitHub Credentials"
id: load-jk-cluster-bot-creds
uses: 1password/load-secrets-action@v5
env:
OP_CONNECT_TOKEN: ${{ secrets.OP_CONNECT_TOKEN }}
JK_CLUSTER_BOT_TOKEN: op://GitHub-Actions/github-helm-charts-push-token/credential
JK_CLUSTER_USERNAME: op://GitHub-Actions/github-helm-charts-push-token/username
JK_CLUSTER_EMAIL: op://GitHub-Actions/github-helm-charts-push-token/email
- uses: actions/checkout@v7
with:
token: ${{ env.JK_CLUSTER_BOT_TOKEN }}
- name: "Get Chart Version"
run: |
CHART_VERSION=$(grep '^version:' ${{ inputs.chart-name }}/Chart.yaml | awk '{print $2}')
CHART_PART=$(echo $CHART_VERSION | cut -d'+' -f1)
echo "CHART_VERSION=$CHART_PART" >> $GITHUB_ENV
working-directory: ${{ inputs.chart-location }}
- name: "Get new Chart Version"
run: |
APP_VERSION_NORMALIZED=$(echo "${{ inputs.app-version }}" | tr '-' '.')
NEW_VERSION="${CHART_VERSION}+up${APP_VERSION_NORMALIZED}"
sed -i "s/^version:.*/version: $NEW_VERSION/" ${{ inputs.chart-name }}/Chart.yaml
sed -i "s/^appVersion:.*/appVersion: ${{ inputs.app-version }}/" ${{ inputs.chart-name }}/Chart.yaml
working-directory: ${{ inputs.chart-location }}
- name: "View chart-directory contents"
run: ls -al
working-directory: ${{ inputs.chart-location }}
- name: "View helm-chart.yaml"
run: cat Chart.yaml
working-directory: ${{ inputs.chart-location }}/${{ inputs.chart-name }}
- name: Commit and Push Changes
run: |
git config --global user.name '${{ env.JK_CLUSTER_USERNAME }}'
git config --global user.email '${{ env.JK_CLUSTER_EMAIL }}'
git commit -am "Updated ${{ inputs.chart-name }} application version to ${{ inputs.app-version }}"
git push