Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
68ab44b
Updating github-config
paketo-bot Nov 23, 2024
4dca65f
Updating github-config
paketo-bot Nov 28, 2024
7cce36e
Updating github-config
paketo-bot Dec 6, 2024
8092a71
Updating github-config
paketo-bot Dec 18, 2024
8a3f5fd
Updating github-config
paketo-bot Dec 28, 2024
bd96f55
Updating github-config
paketo-bot Jan 16, 2025
ec137ba
Updating github-config
paketo-bot Jan 19, 2025
15a7bd7
Updating github-config
paketo-bot Mar 23, 2025
83f72d3
Updating github-config
paketo-bot Apr 10, 2025
078f678
Updating github-config
paketo-bot May 2, 2025
0c7ff51
Updating github-config
paketo-bot May 17, 2025
3687c3a
Updating github-config
paketo-bot Jun 15, 2025
8b312dc
Updating github-config
paketo-bot Jun 17, 2025
cd5d193
Updating github-config
paketo-bot Jun 18, 2025
7c684b6
Updating github-config
paketo-bot Jun 29, 2025
1ca586a
Updating github-config
paketo-bot Jul 8, 2025
0c6522a
Updating github-config
paketo-bot Jul 15, 2025
058e6ce
Updating github-config
paketo-bot Jul 18, 2025
858f534
Updating github-config
paketo-bot Jul 30, 2025
947641e
Updating github-config
paketo-bot Aug 13, 2025
e63ccfd
Updating github-config
paketo-bot Aug 14, 2025
e457420
Updating github-config
paketo-bot Aug 22, 2025
9bae3e6
Updating github-config
paketo-bot Aug 23, 2025
e7f07c5
Updating github-config
paketo-bot Aug 24, 2025
d284748
Updating github-config
paketo-bot Sep 11, 2025
8b4b089
Updating github-config
paketo-bot Sep 16, 2025
3f4522b
Updating github-config
paketo-bot Sep 19, 2025
15c6d8c
Updating github-config
paketo-bot Sep 22, 2025
25f3168
Updating github-config
paketo-bot Sep 23, 2025
70575e2
Updating github-config
paketo-bot Sep 24, 2025
fe0e181
Updating github-config
paketo-bot Sep 26, 2025
115a45f
Updating github-config
paketo-bot Oct 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/approve-bot-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
download:
name: Download PR Artifact
if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
outputs:
pr-author: ${{ steps.pr-data.outputs.author }}
pr-number: ${{ steps.pr-data.outputs.number }}
Expand All @@ -32,7 +32,7 @@ jobs:
name: Approve Bot PRs
needs: download
if: ${{ needs.download.outputs.pr-author == 'paketo-bot' || needs.download.outputs.pr-author == 'dependabot[bot]' }}
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Check Commit Verification
id: unverified-commits
Expand All @@ -52,7 +52,7 @@ jobs:

- name: Checkout
if: steps.human-commits.outputs.human_commits == 'false' && steps.unverified-commits.outputs.unverified_commits == 'false'
uses: actions/checkout@v3
uses: actions/checkout@v5

- name: Approve
if: steps.human-commits.outputs.human_commits == 'false' && steps.unverified-commits.outputs.unverified_commits == 'false'
Expand Down
25 changes: 15 additions & 10 deletions .github/workflows/create-draft-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ concurrency: release
jobs:
builders:
name: Get Builders for Testing
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
outputs:
builders: ${{ steps.builders.outputs.builders }}
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v5
- name: Get builders from integration.json
id: builders
run: |
Expand All @@ -33,31 +33,31 @@ jobs:
printf "builders=%s\n" "${builders}" >> "$GITHUB_OUTPUT"
integration:
name: Integration Tests
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: [builders]
strategy:
matrix:
builder: ${{ fromJSON(needs.builders.outputs.builders) }}
fail-fast: false # don't cancel all test jobs when one fails
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Go
uses: actions/setup-go@v3
uses: actions/setup-go@v6
with:
go-version: 'stable'
- name: Checkout
uses: actions/checkout@v3
go-version-file: go.mod
- name: Run Integration Tests
env:
TMPDIR: "${{ runner.temp }}"
run: ./scripts/integration.sh --builder ${{ matrix.builder }}

release:
name: Release
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: integration
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v5
with:
fetch-tags: true
- name: Reset Draft Release
Expand Down Expand Up @@ -106,12 +106,17 @@ jobs:
"path": "build/buildpackage.cnb",
"name": "${{ github.event.repository.name }}-${{ steps.tag.outputs.tag }}.cnb",
"content_type": "application/x-tar"
},
{
"path": "build/buildpack-release-artifact.tgz",
"name": "${{ github.event.repository.name }}-${{ steps.tag.outputs.tag }}.tgz",
"content_type": "application/gzip"
}
]

failure:
name: Alert on Failure
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: [ integration, release ]
if: ${{ always() && needs.integration.result == 'failure' || needs.release.result == 'failure' }}
steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/label-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ concurrency: pr_labels_${{ github.event.number }}
jobs:
autolabel:
name: Ensure Minimal Semver Labels
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Check Minimal Semver Labels
uses: mheap/github-action-required-labels@v3
uses: mheap/github-action-required-labels@v5
with:
count: 1
labels: semver:major, semver:minor, semver:patch
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/lint-yaml.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,18 @@ on:

jobs:
lintYaml:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5

- name: Checkout github-config
uses: actions/checkout@v3
uses: actions/checkout@v5
with:
repository: paketo-buildpacks/github-config
path: github-config

- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.8

Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ on:
jobs:
golangci:
name: lint
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v5

- name: Setup Go
uses: actions/setup-go@v3
uses: actions/setup-go@v6
with:
go-version: 'stable'

- name: Checkout
uses: actions/checkout@v3
go-version-file: go.mod

- name: golangci-lint
uses: golangci/golangci-lint-action@v3
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/publish-releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ concurrency:
jobs:
publish:
name: Publish
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Publish Draft Release With Highest Semantic Version
id: drafts
Expand All @@ -23,7 +23,7 @@ jobs:

failure:
name: Alert on Failure
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: [ publish ]
if: ${{ always() && needs.publish.result == 'failure' }}
steps:
Expand Down
107 changes: 79 additions & 28 deletions .github/workflows/push-buildpackage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,24 @@ on:
release:
types:
- published
env:
REGISTRIES_FILENAME: "registries.json"
GCR_REGISTRY: "gcr.io"
GCR_PASSWORD: ${{ secrets.GCR_PUSH_BOT_JSON_KEY }}
GCR_USERNAME: "_json_key"
DOCKERHUB_REGISTRY: docker.io
DOCKERHUB_USERNAME: ${{ secrets.PAKETO_BUILDPACKS_DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.PAKETO_BUILDPACKS_DOCKERHUB_PASSWORD }}

jobs:
push:
name: Push
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:

- name: Checkout
uses: actions/checkout@v5

- name: Parse Event
id: event
run: |
Expand All @@ -20,63 +31,103 @@ jobs:
echo "tag_full=${FULL_VERSION}" >> "$GITHUB_OUTPUT"
echo "tag_minor=${MINOR_VERSION}" >> "$GITHUB_OUTPUT"
echo "tag_major=${MAJOR_VERSION}" >> "$GITHUB_OUTPUT"
echo "download_url=$(jq -r '.release.assets[] | select(.name | endswith(".cnb")) | .url' "${GITHUB_EVENT_PATH}")" >> "$GITHUB_OUTPUT"
echo "download_tgz_file_url=$(jq -r '.release.assets[] | select(.name | endswith(".tgz")) | .url' "${GITHUB_EVENT_PATH}")" >> "$GITHUB_OUTPUT"

- name: Download
- name: Download .tgz buildpack release artifact
uses: paketo-buildpacks/github-config/actions/release/download-asset@main
with:
url: ${{ steps.event.outputs.download_url }}
output: "/github/workspace/buildpackage.cnb"
url: ${{ steps.event.outputs.download_tgz_file_url }}
output: "/github/workspace/buildpack-release-artifact.tgz"
token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}

- name: Parse Configs
id: parse_configs
run: |
registries_filename="${{ env.REGISTRIES_FILENAME }}"

push_to_dockerhub=true
push_to_gcr=false

if [[ -f $registries_filename ]]; then
if jq 'has("dockerhub")' $registries_filename > /dev/null; then
push_to_dockerhub=$(jq '.dockerhub' $registries_filename)
fi
if jq 'has("GCR")' $registries_filename > /dev/null; then
push_to_gcr=$(jq '.GCR' $registries_filename)
fi
fi

echo "push_to_dockerhub=${push_to_dockerhub}" >> "$GITHUB_OUTPUT"
echo "push_to_gcr=${push_to_gcr}" >> "$GITHUB_OUTPUT"

- name: Install yj and crane
uses: buildpacks/github-actions/setup-tools@v5.9.5

- name: Validate version
run: |
buidpackTomlVersion=$(sudo skopeo inspect "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" | jq -r '.Labels."io.buildpacks.buildpackage.metadata" | fromjson | .version')
buidpackTomlVersion=$(tar -xzf buildpack-release-artifact.tgz --to-stdout buildpack.toml | yj -tj | jq -r .buildpack.version)
githubReleaseVersion="${{ steps.event.outputs.tag_full }}"
if [[ "$buidpackTomlVersion" != "$githubReleaseVersion" ]]; then
echo "Version in buildpack.toml ($buidpackTomlVersion) and github release ($githubReleaseVersion) are not identical"
exit 1
fi

- name: Docker login docker.io
uses: docker/login-action@v3
with:
username: ${{ env.DOCKERHUB_USERNAME }}
password: ${{ env.DOCKERHUB_PASSWORD }}
registry: ${{ env.DOCKERHUB_REGISTRY }}

- name: Docker login gcr.io
uses: docker/login-action@v3
if: ${{ steps.parse_configs.outputs.push_to_gcr == 'true' }}
with:
username: ${{ env.GCR_USERNAME }}
password: ${{ env.GCR_PASSWORD }}
registry: ${{ env.GCR_REGISTRY }}

- name: Push to GCR
env:
GITHUB_TOKEN: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}
GCR_PUSH_BOT_JSON_KEY: ${{ secrets.GCR_PUSH_BOT_JSON_KEY }}
if: ${{ steps.parse_configs.outputs.push_to_gcr == 'true' }}
run: |
echo "${GCR_PUSH_BOT_JSON_KEY}" | sudo skopeo login --username _json_key --password-stdin gcr.io
sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_full }}"
sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_minor }}"
sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_major }}"
sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://gcr.io/${{ github.repository }}:latest"
./scripts/publish.sh \
--archive-path buildpack-release-artifact.tgz \
--image-ref "gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_full }}"

crane copy "gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_full }}" "gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_minor }}"
crane copy "gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_full }}" "gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_major }}"
crane copy "gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_full }}" "gcr.io/${{ github.repository }}:latest"

- name: Push to DockerHub
if: ${{ steps.parse_configs.outputs.push_to_dockerhub == 'true' }}
id: push
env:
DOCKERHUB_USERNAME: ${{ secrets.PAKETO_BUILDPACKS_DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.PAKETO_BUILDPACKS_DOCKERHUB_PASSWORD }}
GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
run: |
REPOSITORY="${GITHUB_REPOSITORY_OWNER/-/}/${GITHUB_REPOSITORY#${GITHUB_REPOSITORY_OWNER}/}" # translates 'paketo-buildpacks/bundle-install' to 'paketobuildpacks/bundle-install'
IMAGE="index.docker.io/${REPOSITORY}"
echo "${DOCKERHUB_PASSWORD}" | sudo skopeo login --username "${DOCKERHUB_USERNAME}" --password-stdin index.docker.io
sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://${IMAGE}:${{ steps.event.outputs.tag_full }}"
sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://${IMAGE}:${{ steps.event.outputs.tag_minor }}"
sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://${IMAGE}:${{ steps.event.outputs.tag_major }}"
sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://${IMAGE}:latest"
IMAGE="${GITHUB_REPOSITORY_OWNER/-/}/${GITHUB_REPOSITORY#${GITHUB_REPOSITORY_OWNER}/}" # translates 'paketo-buildpacks/bundle-install' to 'paketobuildpacks/bundle-install'

./scripts/publish.sh \
--archive-path buildpack-release-artifact.tgz \
--image-ref "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}"

pushed_image_index_digest=$(crane digest "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" | xargs)

crane copy "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_minor }}"
crane copy "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_major }}"
crane copy "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" "${DOCKERHUB_REGISTRY}/${IMAGE}:latest"

echo "image=${IMAGE}" >> "$GITHUB_OUTPUT"
echo "digest=$(sudo skopeo inspect "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" | jq -r .Digest)" >> "$GITHUB_OUTPUT"
echo "digest=$pushed_image_index_digest" >> "$GITHUB_OUTPUT"

- name: Register with CNB Registry
uses: docker://ghcr.io/buildpacks/actions/registry/request-add-entry:main
with:
id: ${{ github.repository }}
version: ${{ steps.event.outputs.tag_full }}
address: ${{ steps.push.outputs.image }}@${{ steps.push.outputs.digest }}
address: index.docker.io/${{ steps.push.outputs.image }}@${{ steps.push.outputs.digest }}
token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}

failure:
name: Alert on Failure
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: [push]
if: ${{ always() && needs.push.result == 'failure' }}
steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/synchronize-labels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ jobs:
synchronize:
name: Synchronize Labels
runs-on:
- ubuntu-22.04
- ubuntu-24.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5
- uses: micnncim/action-label-syncer@v1
env:
GITHUB_TOKEN: ${{ github.token }}
Loading
Loading