name: Update Components on: workflow_dispatch: schedule: - cron: "0 * * * *" jobs: update-components: runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@v2 - name: Update component versions id: update run: | PR_BODY="" bump_version() { local RELEASE_VERSION=$(curl -s https://api.github.com/repos/fluxcd/$1/releases | jq -r 'sort_by(.published_at) | .[-1] | .tag_name') local CURRENT_VERSION=$(sed -n "s/.*$1\/archive\/\(.*\).zip.*/\1/p;n" manifests/bases/$1/kustomization.yaml) if [[ "${RELEASE_VERSION}" != "${CURRENT_VERSION}" ]]; then # bump kustomize sed -i "s/\($1\/archive\/\)v.*\(.zip\/\/$1-\).*\(\/config.*\)/\1${RELEASE_VERSION}\2${RELEASE_VERSION/v}\3/g" "manifests/bases/$1/kustomization.yaml" if [[ ! -z $(go list -m all | grep "github.com/fluxcd/$1/api" | awk '{print $2}') ]]; then # bump go mod go mod edit -require="github.com/fluxcd/$1/api@${RELEASE_VERSION}" fi PR_BODY="$PR_BODY- $1 to ${RELEASE_VERSION}%0A" fi } { # bump controller versions bump_version helm-controller bump_version kustomize-controller bump_version source-controller bump_version notification-controller # add missing and remove unused modules go mod tidy # diff change git diff # export PR_BODY for PR echo "::set-output name=pr_body::$PR_BODY" } - name: Create Pull Request id: cpr uses: peter-evans/create-pull-request@v3 with: token: ${{ secrets.BOT_GITHUB_TOKEN }} commit-message: Update toolkit components committer: GitHub author: fluxcdbot title: Update toolkit components body: | ${{ steps.update.outputs.pr_body }} Auto-generated by [create-pull-request][1] [1]: https://github.com/peter-evans/create-pull-request branch: update-components reviewers: ${{ secrets.ASSIGNEES }} - name: Check output run: | echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"