92 lines
3.3 KiB
YAML
92 lines
3.3 KiB
YAML
name: Publish Helm Chart on Release
|
||
|
||
on:
|
||
release:
|
||
types: [published]
|
||
|
||
jobs:
|
||
bump-helm-version:
|
||
runs-on: ubicloud-standard-2
|
||
|
||
steps:
|
||
- name: Generate an installation token
|
||
id: app
|
||
uses: actions/create-github-app-token@v2
|
||
with:
|
||
app-id: ${{ vars.INTERNAL_APP_ID }}
|
||
private-key: ${{ secrets.INTERNAL_APP_KEY }}
|
||
owner: windmill-labs
|
||
|
||
- name: Checkout on helm repository
|
||
uses: actions/checkout@v3
|
||
with:
|
||
repository: windmill-labs/windmill-helm-charts
|
||
token: ${{ steps.app.outputs.token }}
|
||
|
||
- name: Get version
|
||
id: get_version
|
||
run: |
|
||
echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
|
||
|
||
- name: Create new branch
|
||
run: |
|
||
# Check if branch already exists remotely
|
||
if git ls-remote --heads origin bump-helm-version-${{ env.VERSION }} | grep -q bump-helm-version-${{ env.VERSION }}; then
|
||
# Branch exists, check it out
|
||
git fetch origin bump-helm-version-${{ env.VERSION }}
|
||
git checkout bump-helm-version-${{ env.VERSION }}
|
||
else
|
||
# Create new branch
|
||
git checkout -b bump-helm-version-${{ env.VERSION }}
|
||
fi
|
||
|
||
git config --local user.email "action@github.com"
|
||
git config --local user.name "GitHub Action"
|
||
|
||
- name: Bump helm version
|
||
run: |
|
||
# Get current version and increment it by 1
|
||
CURRENT_VERSION=$(grep "version:" ./charts/windmill/Chart.yaml | awk '{print $2}' | head -n 1)
|
||
NEW_VERSION=$(echo "$CURRENT_VERSION" | awk -F. '{$NF = $NF + 1;} 1' | sed 's/ /./g')
|
||
sed -i "s/^version: .*/version: $NEW_VERSION/" ./charts/windmill/Chart.yaml
|
||
|
||
# Get the app version from the version
|
||
VERSION=${{ env.VERSION }}
|
||
APP_VERSION=${VERSION#refs/tag/}
|
||
APP_VERSION=${APP_VERSION#v}
|
||
APP_VERSION=${APP_VERSION%/}
|
||
sed -i "s/appVersion: .*/appVersion: $APP_VERSION/" ./charts/windmill/Chart.yaml
|
||
|
||
- name: Close existing bump-helm PRs
|
||
env:
|
||
GH_TOKEN: ${{ steps.app.outputs.token }}
|
||
run: |
|
||
# List open PR numbers whose title starts with the prefix
|
||
prs=$(gh pr list \
|
||
--state open \
|
||
--search '"helm: bump version to" in:title' \
|
||
--json number \
|
||
-q '.[].number')
|
||
|
||
for pr in $prs; do
|
||
echo "Closing outdated bump PR #$pr"
|
||
gh pr close "$pr" \
|
||
--comment "Closed automatically – superseded by a newer Helm-chart bump PR."
|
||
done
|
||
|
||
- name: Commit and push
|
||
run: |
|
||
git add .
|
||
git commit -m "Bump helm version to ${{ env.VERSION }}"
|
||
git push origin bump-helm-version-${{ env.VERSION }}
|
||
|
||
- name: Create PR
|
||
env:
|
||
GH_TOKEN: ${{ steps.app.outputs.token }}
|
||
run: |
|
||
gh pr create \
|
||
--title "helm: bump version to ${{ env.VERSION }}" \
|
||
--body "This PR was auto-generated to bring the helm chart up to date for [release ${{ env.VERSION }}](https://github.com/windmill-labs/windmill/releases/tag/v${{ env.VERSION }}) in the main repo." \
|
||
--head bump-helm-version-${{ env.VERSION }} \
|
||
--base main
|