mirror of
https://github.com/Noooste/garage-ui.git
synced 2026-07-26 07:48:13 +00:00
1c1e4d4b2b
Signed-off-by: Noooste <83548733+Noooste@users.noreply.github.com>
82 lines
2.3 KiB
YAML
82 lines
2.3 KiB
YAML
name: chart-release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v[0-9]+.[0-9]+.[0-9]+'
|
|
- 'v[0-9]+.[0-9]+.[0-9]+-*'
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: write
|
|
pages: write
|
|
packages: write
|
|
id-token: write
|
|
|
|
jobs:
|
|
release:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Configure Git
|
|
run: |
|
|
git config user.name "$GITHUB_ACTOR"
|
|
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
|
|
|
- name: Set up Helm
|
|
uses: azure/setup-helm@v4.3.1
|
|
with:
|
|
version: v4.1.3
|
|
|
|
- name: Run chart-releaser
|
|
uses: helm/chart-releaser-action@v1.7.0
|
|
with:
|
|
charts_dir: helm
|
|
skip_existing: true
|
|
env:
|
|
CR_TOKEN: ${{ secrets.HELM_RELEASE_TOKEN }}
|
|
|
|
- name: Install cosign
|
|
uses: sigstore/cosign-installer@v4.1.2
|
|
|
|
- name: Log in to ghcr.io for cosign
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Package and push chart to ghcr.io (OCI)
|
|
id: oci_push
|
|
env:
|
|
GHCR_USER: ${{ github.actor }}
|
|
GHCR_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
set -euo pipefail
|
|
chart_version=$(grep -E '^version:' helm/garage-ui/Chart.yaml | awk '{print $2}')
|
|
echo "Packaging chart version ${chart_version}"
|
|
helm package helm/garage-ui --destination /tmp/chart
|
|
|
|
echo "${GHCR_TOKEN}" | helm registry login ghcr.io \
|
|
--username "${GHCR_USER}" --password-stdin
|
|
|
|
push_output=$(helm push "/tmp/chart/garage-ui-${chart_version}.tgz" \
|
|
oci://ghcr.io/noooste/charts 2>&1 | tee /dev/stderr)
|
|
|
|
digest=$(echo "$push_output" | grep -oE 'sha256:[a-f0-9]{64}' | head -n1)
|
|
if [ -z "$digest" ]; then
|
|
echo "Failed to parse pushed digest from helm push output" >&2
|
|
exit 1
|
|
fi
|
|
echo "digest=${digest}" >> "$GITHUB_OUTPUT"
|
|
echo "Pushed oci://ghcr.io/noooste/charts/garage-ui:${chart_version} (${digest})"
|
|
|
|
- name: Sign chart with cosign (keyless)
|
|
run: |
|
|
cosign sign --yes \
|
|
"ghcr.io/noooste/charts/garage-ui@${{ steps.oci_push.outputs.digest }}"
|