mirror of https://github.com/fluxcd/flux2.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
3.8 KiB
YAML
109 lines
3.8 KiB
YAML
name: update
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
schedule:
|
|
- cron: "0 * * * *"
|
|
push:
|
|
branches: [main]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
update-components:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
pull-requests: write
|
|
steps:
|
|
- name: Check out code
|
|
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
|
|
- name: Setup Go
|
|
uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1
|
|
with:
|
|
go-version: 1.22.x
|
|
cache-dependency-path: |
|
|
**/go.sum
|
|
**/go.mod
|
|
- name: Update component versions
|
|
id: update
|
|
run: |
|
|
PR_BODY=$(mktemp)
|
|
|
|
bump_version() {
|
|
local LATEST_VERSION=$(curl -s https://api.github.com/repos/fluxcd/$1/releases | jq -r 'sort_by(.published_at) | .[-1] | .tag_name')
|
|
local CTRL_VERSION=$(sed -n "s/.*$1\/releases\/download\/\(.*\)\/.*/\1/p;n" manifests/bases/$1/kustomization.yaml)
|
|
local CRD_VERSION=$(sed -n "s/.*$1\/releases\/download\/\(.*\)\/.*/\1/p" manifests/crds/kustomization.yaml)
|
|
local MOD_VERSION=$(go list -m -f '{{ .Version }}' "github.com/fluxcd/$1/api")
|
|
|
|
local changed=false
|
|
|
|
if [[ "${CTRL_VERSION}" != "${LATEST_VERSION}" ]]; then
|
|
sed -i "s/\($1\/releases\/download\/\)v.*\(\/.*\)/\1${LATEST_VERSION}\2/g" "manifests/bases/$1/kustomization.yaml"
|
|
changed=true
|
|
fi
|
|
|
|
if [[ "${CRD_VERSION}" != "${LATEST_VERSION}" ]]; then
|
|
sed -i "s/\($1\/releases\/download\/\)v.*\(\/.*\)/\1${LATEST_VERSION}\2/g" "manifests/crds/kustomization.yaml"
|
|
changed=true
|
|
fi
|
|
|
|
if [[ "${MOD_VERSION}" != "${LATEST_VERSION}" ]]; then
|
|
go mod edit -require="github.com/fluxcd/$1/api@${LATEST_VERSION}"
|
|
make tidy
|
|
changed=true
|
|
fi
|
|
|
|
if [[ "$changed" == true ]]; then
|
|
echo "- $1 to ${LATEST_VERSION}" >> $PR_BODY
|
|
echo " https://github.com/fluxcd/$1/blob/${LATEST_VERSION}/CHANGELOG.md" >> $PR_BODY
|
|
fi
|
|
}
|
|
|
|
{
|
|
# bump controller versions
|
|
bump_version helm-controller
|
|
bump_version kustomize-controller
|
|
bump_version source-controller
|
|
bump_version notification-controller
|
|
bump_version image-reflector-controller
|
|
bump_version image-automation-controller
|
|
|
|
# diff change
|
|
git diff
|
|
|
|
# export PR_BODY for PR and commit
|
|
# NB: this may look strange but it is the way it should be done to
|
|
# maintain our precious newlines
|
|
# Ref: https://github.com/github/docs/issues/21529
|
|
echo 'pr_body<<EOF' >> $GITHUB_OUTPUT
|
|
cat $PR_BODY >> $GITHUB_OUTPUT
|
|
echo 'EOF' >> $GITHUB_OUTPUT
|
|
}
|
|
|
|
- name: Create Pull Request
|
|
id: cpr
|
|
uses: peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e # v6.0.5
|
|
with:
|
|
token: ${{ secrets.BOT_GITHUB_TOKEN }}
|
|
commit-message: |
|
|
Update toolkit components
|
|
|
|
${{ steps.update.outputs.pr_body }}
|
|
committer: GitHub <noreply@github.com>
|
|
author: fluxcdbot <fluxcdbot@users.noreply.github.com>
|
|
signoff: true
|
|
branch: update-components
|
|
title: Update toolkit components
|
|
body: |
|
|
${{ steps.update.outputs.pr_body }}
|
|
labels: |
|
|
dependencies
|
|
reviewers: ${{ secrets.ASSIGNEES }}
|
|
|
|
- name: Check output
|
|
run: |
|
|
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
|
|
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
|