Skip to content

Bump Version

Bump Version #32

Workflow file for this run

name: Bump Version
on:
repository_dispatch:
types:
- zitadel-released
workflow_dispatch:
inputs:
tag:
description: 'ZITADEL Tag'
required: false
permissions:
contents: write
pull-requests: write
jobs:
bump:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Validate the manually given input tag, if any
if: ${{ (github.event_name == 'workflow_dispatch') && (github.event.inputs.tag != '') }}
id: check-input
run: |
INPUT=${{github.event.inputs.tag}}
if ! [[ ${INPUT} =~ ^v[0-9]+\.[0-9]+\.[0-9]+ ]]; then
echo "supplied invalid version number: ${INPUT}!"
echo "must be of schema: vX.X.X"
exit 1
fi
- name: Get Latest ZITADEL Release Version
id: latest-tag
uses: oprypin/find-latest-tag@v1
with:
repository: zitadel/zitadel
releases-only: true
sort-tags: true
# ignore prereleases
regex: '^v([0-9]+)\.([0-9]+)\.([0-9]+)$'
- name: Decide on Target ZITADEL Version
id: target-zitadel-version
run: |
INPUT=${{ github.event.inputs.tag }}
LATEST=${{ steps.latest-tag.outputs.tag }}
TARGET_ZITADEL_VERSION=${INPUT:-${LATEST}}
echo "input tag: ${INPUT}"
echo "latest tag: ${LATEST}"
echo "going to target zitadel version: ${TARGET_ZITADEL_VERSION}"
echo "tag=${TARGET_ZITADEL_VERSION}" >> $GITHUB_OUTPUT
- name: Parse Target ZITADEL Version into Major, Minor, Patch
id: parsed-target-zitadel-version
uses: release-kit/semver@v2
with:
source: string
string: ${{ steps.target-zitadel-version.outputs.tag }}
- id: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Read Current Chart Version
id: current-chart-version
uses: jbutcher5/read-yaml@1.6
with:
file: './charts/zitadel/Chart.yaml'
key-path: '["version"]'
- name: Read Current ZITADEL Version
id: current-zitadel-version
uses: jbutcher5/read-yaml@1.6
with:
file: './charts/zitadel/Chart.yaml'
key-path: '["appVersion"]'
- name: Print Current Versions
run: |
echo "Chart Version: ${{ steps.current-chart-version.outputs.data }}"
echo "ZITADEL Version: ${{ steps.current-zitadel-version.outputs.data }}"
- name: Parse Currently ZITADEL Version into Major, Minor, Patch
id: parsed-last-zitadel-version
uses: release-kit/semver@v2
with:
source: 'string'
string: ${{ steps.current-zitadel-version.outputs.data }}
- name: Set Version Update Type
id: set-version-type
run: |
[ ${{ steps.parsed-target-zitadel-version.outputs.patch }} -gt ${{ steps.parsed-last-zitadel-version.outputs.patch }} ] && echo 'type=PATCH' >> $GITHUB_OUTPUT || true
[ ${{ steps.parsed-target-zitadel-version.outputs.minor }} -gt ${{ steps.parsed-last-zitadel-version.outputs.minor }} ] && echo 'type=MINOR' >> $GITHUB_OUTPUT || true
[ ${{ steps.parsed-target-zitadel-version.outputs.major }} -gt ${{ steps.parsed-last-zitadel-version.outputs.major }} ] && echo 'type=MAJOR' >> $GITHUB_OUTPUT || true
- name: Bump Chart Version
uses: jessicalostinspace/bump-semantic-version-action@v1.0.1
id: bumped-chart-version
with:
semantic-version: ${{ steps.current-chart-version.outputs.data }}
version-type: ${{ steps.set-version-type.outputs.type }}
- name: Update ZITADEL Version
uses: fjogeleit/yaml-update-action@main
with:
valueFile: 'charts/zitadel/Chart.yaml'
propertyPath: 'appVersion'
value: ${{ steps.target-zitadel-version.outputs.tag }}
commitChange: false
createPR: false
- name: Update Chart Version
uses: fjogeleit/yaml-update-action@main
with:
valueFile: 'charts/zitadel/Chart.yaml'
propertyPath: 'version'
value: ${{ steps.bumped-chart-version.outputs.bumped-semantic-version }}
commitChange: false
createPR: false
- name: Print Chart.yaml
run: cat charts/zitadel/Chart.yaml
- name: Generate GitHub App Token
id: generate-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.ZITADEL_WORKFLOW_APP_ID }}
private-key: ${{ secrets.ZITADEL_WORKFLOW_APP_PRIVATE_KEY }}
- name: Create Pull Request
id: pull-request
uses: peter-evans/create-pull-request@v6
with:
title: Bump ZITADEL Version
branch: create-pull-request/bump
delete-branch: true
# We can't just use the GITHUB_TOKEN here, as it wouldn't trigger other workflows needed for the required checks.
# https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs
token: ${{ steps.generate-token.outputs.token }}
- name: Enable Automerge
if: steps.pull-request.outputs.pull-request-operation == 'created'
run: gh pr merge --squash --auto "${{ steps.pull-request.outputs.pull-request-number }}"
env:
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
- name: Approve
if: steps.pull-request.outputs.pull-request-operation == 'created'
run: gh pr review --approve "${{ steps.pull-request.outputs.pull-request-number }}"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}