diff --git a/.github/pipeline-descriptor.yml b/.github/pipeline-descriptor.yml new file mode 100644 index 0000000..eaefd1f --- /dev/null +++ b/.github/pipeline-descriptor.yml @@ -0,0 +1,5 @@ +path: ../../../projectriff/libfnbuildpack + +codeowners: +- path: "*" + owner: "@projectriff/riff-dev" diff --git a/.github/workflows/update-pipeline.yml b/.github/workflows/update-pipeline.yml new file mode 100644 index 0000000..88bda42 --- /dev/null +++ b/.github/workflows/update-pipeline.yml @@ -0,0 +1,78 @@ +name: Update Pipeline +"on": + schedule: + - cron: 0 5 * * 1-5 + workflow_dispatch: {} +jobs: + update: + name: Update Pipeline + runs-on: + - ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-go@v2 + with: + go-version: "1.15" + - name: Install octo + run: | + #!/usr/bin/env bash + + set -euo pipefail + + GO111MODULE=on go get -u -ldflags="-s -w" github.com/paketo-buildpacks/pipeline-builder/cmd/octo + - id: pipeline + name: Update 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 + + 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 checkout -- . + + echo "::set-output name=old-version::${OLD_VERSION}" + echo "::set-output name=new-version::${NEW_VERSION}" + echo "::set-output name=release-notes::${RELEASE_NOTES//$'\n'/%0A}" + env: + DESCRIPTOR: .github/pipeline-descriptor.yml + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - uses: peter-evans/create-pull-request@v3 + with: + body: |- + Bumps pipeline from `${{ steps.pipeline.outputs.old-version }}` to `${{ steps.pipeline.outputs.new-version }}`. + +
+ Release Notes + ${{ steps.pipeline.outputs.release-notes }} +
+ 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.GITHUB_TOKEN }} diff --git a/.github/workflows/update-pipelines.yml b/.github/workflows/update-pipelines.yml new file mode 100644 index 0000000..5d7a9e4 --- /dev/null +++ b/.github/workflows/update-pipelines.yml @@ -0,0 +1,78 @@ +name: Update Pipelines +"on": + schedule: + - cron: 0 5 * * 1-5 + workflow_dispatch: {} +jobs: + update: + name: Update Pipelines + runs-on: + - ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-go@v2 + with: + go-version: "1.15" + - name: Install octo + run: | + #!/usr/bin/env bash + + set -euo pipefail + + GO111MODULE=on go get -u -ldflags="-s -w" github.com/paketo-buildpacks/pipeline-builder/cmd/octo + - id: pipelines + name: Update Pipelines + run: | + #!/usr/bin/env bash + + set -euo pipefail + + if [[ -f .github/pipelines-version ]]; then + OLD_VERSION=$(cat .github/pipelines-version) + else + OLD_VERSION="0.0.0" + fi + + 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/pipelines-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 checkout -- . + + echo "::set-output name=old-version::${OLD_VERSION}" + echo "::set-output name=new-version::${NEW_VERSION}" + echo "::set-output name=release-notes::${RELEASE_NOTES//$'\n'/%0A}" + env: + DESCRIPTOR: .github/pipelines-descriptor.yml + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - uses: peter-evans/create-pull-request@v3 + with: + body: |- + Bumps pipelines from `${{ steps.pipelines.outputs.old-version }}` to `${{ steps.pipelines.outputs.new-version }}`. + +
+ Release Notes + ${{ steps.pipelines.outputs.release-notes }} +
+ branch: update/pipelines + commit-message: |- + Bump pipelines from ${{ steps.pipelines.outputs.old-version }} to ${{ steps.pipelines.outputs.new-version }} + + Bumps pipelines from ${{ steps.pipelines.outputs.old-version }} to ${{ steps.pipelines.outputs.new-version }}. + delete-branch: true + labels: semver:patch, type:task + signoff: true + title: Bump pipelines from ${{ steps.pipelines.outputs.old-version }} to ${{ steps.pipelines.outputs.new-version }} + token: ${{ secrets.GITHUB_TOKEN }}