diff --git a/.github/configs/cr.yaml b/.github/configs/cr.yaml new file mode 100644 index 0000000..f805cca --- /dev/null +++ b/.github/configs/cr.yaml @@ -0,0 +1,12 @@ +--- +# cr.yaml +## Reference: https://github.com/helm/chart-releaser +index-path: "./index.yaml" +# Set to true for GPG signing +sign: true +# UID of the GPG key to use +key: Kaleidos INC +# Enable automatic generation of release notes using GitHubs release notes +# generator. See: +# https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes +generate-release-notes: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..3f6e72a --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,88 @@ +name: Release Charts + +on: + workflow_dispatch: + inputs: + logLevel: + description: 'Log level' + required: true + default: 'warning' + type: choice + options: + - info + - warning + - debug + #push: + # branches: + # - main + # paths: + # - "charts/**" + +jobs: + release: + # depending on default permission settings for your org (contents being read-only or read-write for workloads), you will have to add permissions + # see: https://docs.github.com/en/actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token + permissions: + contents: write # for helm/chart-releaser-action to push chart release and create a release + packages: write # to push OCI chart package to GitHub Registry + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + 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: Install Helm + uses: azure/setup-helm@v4 + env: + GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + + # Optional step if GPG signing is used + - name: Prepare GPG key + run: | + gpg_dir=.cr-gpg + keyring="$gpg_dir/secring.gpg" + passphrase_file="$gpg_dir/passphrase" + mkdir "$gpg_dir" + base64 -d <<< "$GPG_KEYRING_BASE64" > "$keyring" + echo "$GPG_PASSPHRASE" > "$passphrase_file" + echo "CR_KEYRING=$keyring" >> "$GITHUB_ENV" + echo "CR_PASSPHRASE_FILE=$passphrase_file" >> "$GITHUB_ENV" + env: + GPG_KEYRING_BASE64: "${{ secrets.GPG_KEYRING_BASE64 }}" + GPG_PASSPHRASE: "${{ secrets.GPG_PASSPHRASE }}" + + - name: Add helm repositories + run: | + for dir in $(ls -d charts/*/); do + helm dependency list $dir 2> /dev/null | tail +2 | head -n -1 | awk '{ print "helm repo add " $1 " " $3 }' | while read cmd; do $cmd; done + done + + - name: Run chart-releaser + uses: helm/chart-releaser-action@v1.6.0 + with: + config: "./.github/configs/cr.yaml" + env: + CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + + - name: Login to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Push chart to GHCR + run: | + shopt -s nullglob + for pkg in .cr-release-packages/*.tgz; do + if [ -z "${pkg:-}" ]; then + break + fi + helm push "${pkg}" oci://ghcr.io/${{ github.repository }} + done diff --git a/charts/penpot/Chart.yaml b/charts/penpot/Chart.yaml index a122561..8599c21 100644 --- a/charts/penpot/Chart.yaml +++ b/charts/penpot/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -version: 0.1.0 # Chart version +version: 0.1.0-alpha-1 # Chart version appVersion: "2.0.3" # Penpot version type: application name: penpot @@ -21,6 +21,10 @@ keywords: - opensource - ux - ui +annotations: + artifacthub.io/signKey: | + fingerprint: F0B526DC641A6DCBD94A2B2BA11A82757E9E6942 + url: https://penpot.github.io/penpot-helm/pubkey.asc dependencies: - name: postgresql version: 15.x.x # appVersion >= 16.2.0 diff --git a/charts/penpot/README.md b/charts/penpot/README.md index e6d9def..b9ab07d 100644 --- a/charts/penpot/README.md +++ b/charts/penpot/README.md @@ -1,6 +1,6 @@ # penpot -![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![AppVersion: 2.0.3](https://img.shields.io/badge/AppVersion-2.0.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) +![Version: 0.1.0-alpha-1](https://img.shields.io/badge/Version-0.1.0--alpha--1-informational?style=flat-square) ![AppVersion: 2.0.3](https://img.shields.io/badge/AppVersion-2.0.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) Helm chart for Penpot, the Open Source design and prototyping platform.