Skip to content

Check for new chart release #128

Check for new chart release

Check for new chart release #128

name: Check for new chart release
# Description:
# This workflow prepares a new release of the helm chart by updating chart and app versions as well as creating a PR.
# A release PR will be created in these cases.
# - When a user kicks offs this workflow manually. A user can specify the CHART_VERSION and APP_VERSION used for the new release.
# - When the cron schedule kicks off the job and there is a version difference for the collector application, then a chart release draft PR will be created with the version automatically incremented appropriately.
on:
schedule:
# Run every 12 hours at 55 minutes past the hour.
- cron: "55 */12 * * *"
workflow_dispatch:
inputs:
CHART_VERSION:
description: 'Optionally overrides the chart version in Chart.yaml.'
required: false
default: ''
APP_VERSION:
description: 'Optionally overrides the app version in Chart.yaml.'
required: false
default: ''
DEBUG:
description: 'Enable debug mode for the script.'
required: false
default: 'false'
jobs:
prepare_release:
runs-on: ubuntu-latest
env:
CHART_VERSION: ${{ github.event.inputs.CHART_VERSION }}
APP_VERSION: ${{ github.event.inputs.APP_VERSION }}
DEBUG: ${{ github.event.inputs.DEBUG }}
steps:
- uses: actions/checkout@v4
- name: Install tools
run: make install-tools
- name: Prepare Release
id: prepare_release
run: |
make prepare-release CHART_VERSION=$CHART_VERSION APP_VERSION=$APP_VERSION CREATE_BRANCH=false DEBUG=$DEBUG
- name: Check if PR is already open
id: check_if_pr_open
run: |
echo "PR_NEEDED=1" >> "$GITHUB_OUTPUT"
git fetch origin
# Directly check if the feature branch exists and has the same changes in the remote repository
if git ls-remote --heads origin update-release > /dev/null; then
if git diff --no-ext-diff --quiet origin/update-release -- helm-charts; then
echo "PR_NEEDED=0" >> "$GITHUB_OUTPUT"
fi
fi
- name: Open PR for Version Update
id: open_pr
if: ${{ steps.prepare_release.outputs.NEED_UPDATE == 1 && steps.check_if_pr_open.outputs.PR_NEEDED == 1 }}
uses: peter-evans/create-pull-request@v6
with:
commit-message: Prepare release v${{ steps.prepare_release.outputs.LATEST_CHART_VERSION }}
title: Prepare release v${{ steps.prepare_release.outputs.LATEST_CHART_VERSION }}
body: |
Description
- Release Helm chart version ${{ steps.prepare_release.outputs.LATEST_CHART_VERSION }}
- Includes collector version ${{ steps.prepare_release.outputs.LATEST_APP_VERSION }}
branch: update-release
base: main
delete-branch: true