Skip to content

Release PR

Release PR #48

Workflow file for this run

name: Release PR
on:
workflow_dispatch:
inputs:
current_version:
description: "Current version to replace"
required: true
default: "3.3.2"
new_version:
description: "Version to release"
required: true
default: "3.4.3"
current_helm_version:
description: "Current helm version to replace"
required: true
default: "1.0.2"
new_helm_version:
description: "Helm version to release"
required: true
default: "1.1.3"
current_operator_version:
description: "Current operator version to replace"
required: true
default: "2.3.0"
new_operator_version:
description: "Operator version to release"
required: true
default: "2.3.1"
k8s_versions:
description: "Kubernetes versions this release has been tested on"
required: true
default: "x.xx-x.xx"
release_date:
description: "Date for this release"
required: true
default: "%d %b %Y"
dry_run:
description: "Don't create any PR's"
type: boolean
default: false
debug:
description: "Enable debug logging"
type: boolean
default: false
defaults:
run:
shell: bash
permissions:
contents: read
jobs:
release:
permissions:
contents: write
pull-requests: write
id-token: write
runs-on: ubuntu-24.04
steps:
- name: Branch
id: branch
run: |
version=${{ inputs.new_version }}
version=${version%.*}
echo "branch=release-$version" >> $GITHUB_OUTPUT
- name: Checkout Repository
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
ref: ${{ steps.branch.outputs.branch }}
token: ${{ secrets.GITHUB_TOKEN }}
- name: Azure login
uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v2.3.0
with:
client-id: ${{ secrets.AZURE_COMMON_VAULT_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_COMMON_VAULT_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_COMMON_VAULT_SUBSCRIPTION_ID }}
- name: Setup secrets
id: secrets
run: |
echo "Setting secrets for job"
NGINX_PAT=$(az keyvault secret show --name nginx-bot-pat --vault-name ${{ secrets.COMMON_KEYVAULT_NAME }} --query value -o tsv)
echo "::add-mask::$NGINX_PAT"
echo "NGINX_PAT=$NGINX_PAT" >> $GITHUB_OUTPUT
- name: Replace
run: |
.github/scripts/release-version-update.sh \
${{ inputs.current_version }} \
${{ inputs.current_helm_version }} \
${{ inputs.current_operator_version }} \
${{ inputs.new_version }} \
${{ inputs.new_helm_version }} \
${{ inputs.new_operator_version }}
pip install --require-hashes -r .github/scripts/requirements.txt --no-deps
.github/scripts/release-docs.sh \
${{ inputs.new_version }} \
${{ inputs.new_helm_version }} \
${{ inputs.new_operator_version }} \
"${{ inputs.k8s_versions }}" \
"${{ inputs.release_date }}"
env:
GITHUB_USERNAME: ${{ github.actor }}
GITHUB_EMAIL: ${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com
GITHUB_TOKEN: ${{ steps.secrets.outputs.NGINX_PAT }}
DRY_RUN: ${{ inputs.dry_run && 'true' || 'false' }}
DEBUG: ${{ inputs.debug && 'true' || 'false' }}
- name: Create Pull Request
uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412 # v7.0.9
with:
token: ${{ steps.secrets.outputs.NGINX_PAT }}
commit-message: Release ${{ github.event.inputs.new_version }}
title: Release ${{ github.event.inputs.new_version }}
branch: docs/release-${{ github.event.inputs.new_version }}
body: |
This automated PR updates the docs for ${{ github.event.inputs.new_version }} release.
if: ${{ ! inputs.dry_run }}