Skip to content

πŸŽ‰ Release helm chart 0.20.0 πŸŽ‰ (#671) #51

πŸŽ‰ Release helm chart 0.20.0 πŸŽ‰ (#671)

πŸŽ‰ Release helm chart 0.20.0 πŸŽ‰ (#671) #51

Workflow file for this run

name: Helm
on:
push:
branches:
- main
paths:
- 'helm/ngrok-operator/Chart.yaml'
jobs:
changes:
name: Changes
runs-on: ubuntu-latest
timeout-minutes: 10
outputs:
charts: ${{ steps.filter.outputs.charts }}
permissions:
contents: read
pull-requests: read
if: github.repository == 'ngrok/ngrok-operator'
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Check for changes
id: filter
uses: dorny/[email protected]
with:
filters: |
charts:
- 'helm/ngrok-operator/Chart.yaml'
chart:
name: Release Chart
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
contents: write # need to write releases
needs: [changes]
if: |
(github.repository == 'ngrok/ngrok-operator') &&
(needs.changes.outputs.charts == 'true')
steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
# Fetch entire history. Required for chart-releaser to work.
fetch-depth: 0
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"
- name: Import GPG Key
run: |
echo "${{ secrets.GPG_PRIVATE_KEY }}" | gpg --dearmor --output keyring.gpg
echo "${{ secrets.GPG_PASSWORD }}" > gpg-password.txt
- name: Install Helm
uses: azure/setup-helm@v3
with:
version: v3.10.0
- name: Setup Helm
run: make _helm_setup
- name: Run chart-releaser
uses: helm/[email protected]
env:
CR_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CR_RELEASE_NAME_TEMPLATE: "helm-chart-{{ .Version }}" # Publishes a new release. Ex: helm-chart-0.1.0
CR_SKIP_EXISTING: "true"
CR_KEY: "Team Eng Infra (ngrok.com) (Key for signing ngrok-operator Helm chart) <[email protected]>" # full key name
CR_KEYRING: keyring.gpg
CR_PASSPHRASE_FILE: gpg-password.txt
CR_SIGN: true
with:
charts_dir: helm
- run: ls -alth .
working-directory: ./.cr-release-packages
shell: bash
- name: Push to charts.ngrok.com
working-directory: ./.cr-release-packages
env:
CHART_PUSH_AUTH: ${{ secrets.CHART_PUSH_AUTH }}
run: |
for chart in ngrok-operator-*.tgz; do
if [ -f "${chart}.prov" ]; then
echo "Uploading ${chart} and ${chart}.prov"
curl -H "Authorization: Basic ${CHART_PUSH_AUTH}" -F "chart=@${chart}" -F "prov=@${chart}.prov" "https://charts.ngrok.com/api/charts"
else
echo "Uploading ${chart}"
curl -H "Authorization: Basic ${CHART_PUSH_AUTH}" -F "chart=@${chart}" "https://charts.ngrok.com/api/charts"
fi
done