94 lines
3.8 KiB
YAML
94 lines
3.8 KiB
YAML
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.24"
|
|
- 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.IMPLEMENTATION_GITHUB_TOKEN }}
|
|
- uses: peter-evans/create-pull-request@v6
|
|
with:
|
|
author: ${{ secrets.IMPLEMENTATION_GITHUB_USERNAME }} <${{ secrets.IMPLEMENTATION_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.IMPLEMENTATION_GITHUB_TOKEN }}
|