name: Update Pipeline "on": push: branches: - main paths: - .github/pipeline-descriptor.yml schedule: - cron: 0 5 * * 1-5 workflow_dispatch: {} jobs: update: name: Update Pipeline runs-on: - ubuntu-latest steps: - uses: actions/setup-go@v5 with: go-version: "1.23" - name: Install octo run: | #!/usr/bin/env bash set -euo pipefail go install -ldflags="-s -w" github.com/paketo-buildpacks/pipeline-builder/cmd/octo@latest - uses: actions/checkout@v4 - name: Update Pipeline id: pipeline run: | #!/usr/bin/env bash set -euo pipefail if [[ -f .github/pipeline-version ]]; then OLD_VERSION=$(cat .github/pipeline-version) else OLD_VERSION="0.0.0" fi rm .github/workflows/pb-*.yml || true octo --descriptor "${DESCRIPTOR}" PAYLOAD=$(gh api /repos/paketo-buildpacks/pipeline-builder/releases/latest) NEW_VERSION=$(jq -n -r --argjson PAYLOAD "${PAYLOAD}" '$PAYLOAD.name') echo "${NEW_VERSION}" > .github/pipeline-version RELEASE_NOTES=$( gh api \ -F text="$(jq -n -r --argjson PAYLOAD "${PAYLOAD}" '$PAYLOAD.body')" \ -F mode="gfm" \ -F context="paketo-buildpacks/pipeline-builder" \ -X POST /markdown ) git add .github/ git add .gitignore if [ -f scripts/build.sh ]; then git add scripts/build.sh fi git checkout -- . echo "old-version=${OLD_VERSION}" >> "$GITHUB_OUTPUT" echo "new-version=${NEW_VERSION}" >> "$GITHUB_OUTPUT" DELIMITER=$(openssl rand -hex 16) # roughly the same entropy as uuid v4 used in https://github.com/actions/toolkit/blob/b36e70495fbee083eb20f600eafa9091d832577d/packages/core/src/file-command.ts#L28 printf "release-notes<<%s\n%s\n%s\n" "${DELIMITER}" "${RELEASE_NOTES}" "${DELIMITER}" >> "${GITHUB_OUTPUT}" # see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings env: DESCRIPTOR: .github/pipeline-descriptor.yml GITHUB_TOKEN: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }} - uses: peter-evans/create-pull-request@v6 with: author: ${{ secrets.JAVA_GITHUB_USERNAME }} <${{ secrets.JAVA_GITHUB_USERNAME }}@users.noreply.github.com> body: |- Bumps pipeline from `${{ steps.pipeline.outputs.old-version }}` to `${{ steps.pipeline.outputs.new-version }}`. <details> <summary>Release Notes</summary> ${{ steps.pipeline.outputs.release-notes }} </details> branch: update/pipeline commit-message: |- Bump pipeline from ${{ steps.pipeline.outputs.old-version }} to ${{ steps.pipeline.outputs.new-version }} Bumps pipeline from ${{ steps.pipeline.outputs.old-version }} to ${{ steps.pipeline.outputs.new-version }}. delete-branch: true labels: semver:patch, type:task signoff: true title: Bump pipeline from ${{ steps.pipeline.outputs.old-version }} to ${{ steps.pipeline.outputs.new-version }} token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}