Files
sure/.github/workflows/helm-release.yaml
luo jiyin 828c53f62d Fix variable injection vulnerability in helm-release workflow (#541)
* Fix variable injection vulnerability in helm-release workflow

  - Use explicit env block to pass GitHub context variables safely
  - Remove duplicate hardcoded git config that overwrote earlier settings
  - Prevents potential shell injection via  expansion

Signed-off-by: luojiyin <luojiyin@hotmail.com>

* Fix git config for gh-pages repository checkout

   Apply git user config inside gh-pages directory before commit,
   as the earlier config only applies to the main repository checkout.

Signed-off-by: luojiyin <luojiyin@hotmail.com>

---------

Signed-off-by: luojiyin <luojiyin@hotmail.com>
2026-01-07 21:12:08 +01:00

88 lines
2.5 KiB
YAML

name: Release Helm Chart (WIP)
on:
push:
branches:
- main
paths:
- 'charts/**'
workflow_dispatch:
jobs:
release:
if: github.repository == 'we-promise/sure'
runs-on: ubuntu-latest
permissions:
contents: write
pages: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Configure Git
env:
GIT_USER_NAME: ${{ github.actor }}
GIT_USER_EMAIL: ${{ github.actor }}@users.noreply.github.com
run: |
git config user.name "$GIT_USER_NAME"
git config user.email "$GIT_USER_EMAIL"
- name: Install Helm
uses: azure/setup-helm@v3
- name: Generate nightly version
id: version
run: |
# Generate version like: 0.0.0-nightly.20251213.173045
VERSION="0.0.0-nightly.$(date -u +'%Y%m%d.%H%M%S')"
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Generated version: $VERSION"
- name: Update Chart.yaml version
run: |
sed -i "s/^version:.*/version: ${{ steps.version.outputs.version }}/" charts/sure/Chart.yaml
cat charts/sure/Chart.yaml
- name: Add Helm repositories
run: |
helm repo add cloudnative-pg https://cloudnative-pg.github.io/charts
helm repo add ot-helm https://ot-container-kit.github.io/helm-charts
helm repo update
- name: Build dependencies
run: |
helm dependency build charts/sure
- name: Package chart
run: |
mkdir -p .cr-release-packages
helm package charts/sure -d .cr-release-packages
- name: Checkout gh-pages
uses: actions/checkout@v4
with:
ref: gh-pages
path: gh-pages
- name: Update index and push
env:
GIT_USER_NAME: ${{ github.actor }}
GIT_USER_EMAIL: ${{ github.actor }}@users.noreply.github.com
run: |
# Copy packaged chart
cp .cr-release-packages/*.tgz gh-pages/
# Update index
helm repo index gh-pages --url https://we-promise.github.io/sure --merge gh-pages/index.yaml
# Push to gh-pages
git config --global credential.helper cache
cd gh-pages
git config user.name "$GIT_USER_NAME"
git config user.email "$GIT_USER_EMAIL"
git add .
git commit -m "Release nightly: ${{ steps.version.outputs.version }}"
git push