From 4acfe067ce5213982f5b5edfe94fe861987e5d27 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Mon, 31 Mar 2025 13:35:14 +0000 Subject: [PATCH 01/49] Updating github-config --- .github/workflows/push-buildpackage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push-buildpackage.yml b/.github/workflows/push-buildpackage.yml index 390ce277..c2f5a399 100644 --- a/.github/workflows/push-buildpackage.yml +++ b/.github/workflows/push-buildpackage.yml @@ -41,7 +41,7 @@ jobs: registries_filename="${{ env.REGISTRIES_FILENAME }}" push_to_dockerhub=true - push_to_gcr=true + push_to_gcr=false if [[ -f $registries_filename ]]; then if jq 'has("dockerhub")' $registries_filename > /dev/null; then From 1bcfe94af462cec07af04e73edcfcf245e6d1942 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Thu, 10 Apr 2025 13:35:25 +0000 Subject: [PATCH 02/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index 9d1776aa..fee488a4 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,5 +1,5 @@ { "createpackage": "v1.73.0", - "jam": "v2.11.1", + "jam": "v2.11.2", "pack": "v0.37.0" } From c149d6cdba8f07bae41de2008e15a12a5879117f Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Fri, 2 May 2025 13:35:09 +0000 Subject: [PATCH 03/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index fee488a4..b4fb180e 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,5 +1,5 @@ { "createpackage": "v1.73.0", - "jam": "v2.11.2", + "jam": "v2.11.4", "pack": "v0.37.0" } From 331a81f05bf9fe20da13e31c74d4f4fbd82404ff Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Sat, 17 May 2025 13:32:57 +0000 Subject: [PATCH 04/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index b4fb180e..89988cc8 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,5 +1,5 @@ { "createpackage": "v1.73.0", - "jam": "v2.11.4", + "jam": "v2.11.5", "pack": "v0.37.0" } From ca1707bf2d13fd2188d24d7ee37b5af8339e9275 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Sun, 18 May 2025 13:33:23 +0000 Subject: [PATCH 05/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index 89988cc8..8328680d 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,5 +1,5 @@ { - "createpackage": "v1.73.0", + "createpackage": "v2.0.0", "jam": "v2.11.5", "pack": "v0.37.0" } From abc4c55556000fac785085c4625f9a7147654cff Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Tue, 10 Jun 2025 13:38:02 +0000 Subject: [PATCH 06/49] Updating github-config --- scripts/.util/tools.json | 1 - scripts/.util/tools.sh | 27 --------------------------- scripts/integration.sh | 3 --- 3 files changed, 31 deletions(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index 8328680d..b7c7d01d 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,5 +1,4 @@ { - "createpackage": "v2.0.0", "jam": "v2.11.5", "pack": "v0.37.0" } diff --git a/scripts/.util/tools.sh b/scripts/.util/tools.sh index 8feecf3e..3bb7295f 100644 --- a/scripts/.util/tools.sh +++ b/scripts/.util/tools.sh @@ -196,33 +196,6 @@ function util::tools::packager::install () { fi } -function util::tools::create-package::install () { - local dir version - while [[ "${#}" != 0 ]]; do - case "${1}" in - --directory) - dir="${2}" - shift 2 - ;; - - *) - util::print::error "unknown argument \"${1}\"" - ;; - - esac - done - - version="$(jq -r .createpackage "$(dirname "${BASH_SOURCE[0]}")/tools.json")" - - mkdir -p "${dir}" - util::tools::path::export "${dir}" - - if [[ ! -f "${dir}/create-package" ]]; then - util::print::title "Installing create-package" - GOBIN="${dir}" go install -ldflags="-s -w" "github.com/paketo-buildpacks/libpak/cmd/create-package@${version}" - fi -} - function util::tools::tests::checkfocus() { testout="${1}" if grep -q 'Focused: [1-9]' "${testout}"; then diff --git a/scripts/integration.sh b/scripts/integration.sh index 46ffbdb4..690005f6 100755 --- a/scripts/integration.sh +++ b/scripts/integration.sh @@ -110,9 +110,6 @@ function tools::install() { --directory "${BUILDPACKDIR}/.bin" \ --token "${token}" - util::tools::create-package::install \ - --directory "${BUILDPACKDIR}/.bin" - if [[ -f "${BUILDPACKDIR}/.libbuildpack" ]]; then util::tools::packager::install \ --directory "${BUILDPACKDIR}/.bin" From 99417cb6f2a5e06bb5873349f523154ef99accdd Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Sun, 15 Jun 2025 13:34:30 +0000 Subject: [PATCH 07/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index b7c7d01d..93a8b912 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,4 +1,4 @@ { "jam": "v2.11.5", - "pack": "v0.37.0" + "pack": "v0.38.0" } From a337cc4430b52e33370c18b1c2eccd8836d68845 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Tue, 17 Jun 2025 13:37:40 +0000 Subject: [PATCH 08/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index 93a8b912..3951713c 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,4 +1,4 @@ { "jam": "v2.11.5", - "pack": "v0.38.0" + "pack": "v0.38.1" } From ab5df671f4eac6b1072c82770bd22aca15dbc842 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Fri, 20 Jun 2025 13:36:53 +0000 Subject: [PATCH 09/49] Updating github-config --- scripts/.util/tools.json | 2 + scripts/.util/tools.sh | 87 ++++++++++++++++++++++++++++++++++++++++ scripts/integration.sh | 6 +++ 3 files changed, 95 insertions(+) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index 3951713c..d749eda8 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,4 +1,6 @@ { + "createpackage": "v1.73.0", "jam": "v2.11.5", + "libpaktools": "v0.2.0", "pack": "v0.38.1" } diff --git a/scripts/.util/tools.sh b/scripts/.util/tools.sh index 3bb7295f..56c0cf3d 100644 --- a/scripts/.util/tools.sh +++ b/scripts/.util/tools.sh @@ -31,6 +31,8 @@ function util::tools::arch() { amd64|x86_64) if [[ "${1:-}" == "--blank-amd64" ]]; then echo "" + elif [[ "${1:-}" == "--format-amd64-x86_64" ]]; then + echo "x86_64" else echo "amd64" fi @@ -196,6 +198,91 @@ function util::tools::packager::install () { fi } +function util::tools::libpak-tools::install () { + local dir token + token="" + + while [[ "${#}" != 0 ]]; do + case "${1}" in + --directory) + dir="${2}" + shift 2 + ;; + + --token) + token="${2}" + shift 2 + ;; + + *) + util::print::error "unknown argument \"${1}\"" + esac + done + + mkdir -p "${dir}" + util::tools::path::export "${dir}" + + + if [[ ! -f "${dir}/libpak-tools" ]]; then + local version curl_args os arch + + version="$(jq -r .libpaktools "$(dirname "${BASH_SOURCE[0]}")/tools.json")" + + curl_args=( + "--fail" + "--silent" + "--location" + "--output" "${dir}/libpak-tools.tar.gz" + ) + + if [[ "${token}" != "" ]]; then + curl_args+=("--header" "Authorization: Token ${token}") + fi + + util::print::title "Installing libpak-tools ${version}" + + os=$(util::tools::os) + arch=$(util::tools::arch --format-amd64-x86_64) + + curl "https://github.com/paketo-buildpacks/libpak-tools/releases/download/${version}/libpak-tools_${os^}_${arch}.tar.gz" \ + "${curl_args[@]}" + + tar -xzf "${dir}/libpak-tools.tar.gz" -C $dir + rm "${dir}/libpak-tools.tar.gz" + + chmod +x "${dir}/libpak-tools" + else + util::print::info "Using libpak-tools" + fi +} + +function util::tools::create-package::install () { + local dir version + while [[ "${#}" != 0 ]]; do + case "${1}" in + --directory) + dir="${2}" + shift 2 + ;; + + *) + util::print::error "unknown argument \"${1}\"" + ;; + + esac + done + + version="$(jq -r .createpackage "$(dirname "${BASH_SOURCE[0]}")/tools.json")" + + mkdir -p "${dir}" + util::tools::path::export "${dir}" + + if [[ ! -f "${dir}/create-package" ]]; then + util::print::title "Installing create-package" + GOBIN="${dir}" go install -ldflags="-s -w" "github.com/paketo-buildpacks/libpak/cmd/create-package@${version}" + fi +} + function util::tools::tests::checkfocus() { testout="${1}" if grep -q 'Focused: [1-9]' "${testout}"; then diff --git a/scripts/integration.sh b/scripts/integration.sh index 690005f6..5de24a61 100755 --- a/scripts/integration.sh +++ b/scripts/integration.sh @@ -110,6 +110,12 @@ function tools::install() { --directory "${BUILDPACKDIR}/.bin" \ --token "${token}" + util::tools::libpak-tools::install \ + --directory "${BUILDPACKDIR}/.bin" + + util::tools::create-package::install \ + --directory "${BUILDPACKDIR}/.bin" + if [[ -f "${BUILDPACKDIR}/.libbuildpack" ]]; then util::tools::packager::install \ --directory "${BUILDPACKDIR}/.bin" From 66f2263ee0e3586cf4c5bf82c351350776a19188 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Sun, 29 Jun 2025 13:35:14 +0000 Subject: [PATCH 10/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index d749eda8..ea7a3010 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -2,5 +2,5 @@ "createpackage": "v1.73.0", "jam": "v2.11.5", "libpaktools": "v0.2.0", - "pack": "v0.38.1" + "pack": "v0.38.2" } From 2a47d4b692f612030ccb14d4ab383a561776380f Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Tue, 8 Jul 2025 13:38:36 +0000 Subject: [PATCH 11/49] Updating github-config --- .github/workflows/approve-bot-pr.yml | 4 ++-- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/create-draft-release.yml | 8 ++++---- .github/workflows/label-pr.yml | 2 +- .github/workflows/lint-yaml.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/publish-releases.yml | 4 ++-- .github/workflows/push-buildpackage.yml | 4 ++-- .github/workflows/synchronize-labels.yml | 2 +- .github/workflows/test-pull-request.yml | 8 ++++---- .github/workflows/update-dependencies-from-metadata.yml | 2 +- .github/workflows/update-github-config.yml | 4 ++-- .github/workflows/update-go-mod-version.yml | 2 +- 13 files changed, 23 insertions(+), 23 deletions(-) diff --git a/.github/workflows/approve-bot-pr.yml b/.github/workflows/approve-bot-pr.yml index c798e647..8dca7fea 100644 --- a/.github/workflows/approve-bot-pr.yml +++ b/.github/workflows/approve-bot-pr.yml @@ -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 }} @@ -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 diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 09253a6d..42f83858 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -11,7 +11,7 @@ on: jobs: analyze: name: Analyze - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false diff --git a/.github/workflows/create-draft-release.yml b/.github/workflows/create-draft-release.yml index acc723ec..177f4a08 100644 --- a/.github/workflows/create-draft-release.yml +++ b/.github/workflows/create-draft-release.yml @@ -17,7 +17,7 @@ concurrency: release jobs: unit: name: Unit Tests - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 outputs: builders: ${{ steps.builders.outputs.builders }} steps: @@ -39,7 +39,7 @@ jobs: integration: name: Integration Tests - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: unit strategy: matrix: @@ -59,7 +59,7 @@ jobs: release: name: Release - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: integration steps: - name: Setup Go @@ -144,7 +144,7 @@ jobs: failure: name: Alert on Failure - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [ unit, integration, release ] if: ${{ always() && needs.unit.result == 'failure' || needs.integration.result == 'failure' || needs.release.result == 'failure' }} steps: diff --git a/.github/workflows/label-pr.yml b/.github/workflows/label-pr.yml index b09cdf09..eeb54232 100644 --- a/.github/workflows/label-pr.yml +++ b/.github/workflows/label-pr.yml @@ -15,7 +15,7 @@ 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 diff --git a/.github/workflows/lint-yaml.yml b/.github/workflows/lint-yaml.yml index e6f4a8b1..538d1e68 100644 --- a/.github/workflows/lint-yaml.yml +++ b/.github/workflows/lint-yaml.yml @@ -8,7 +8,7 @@ on: jobs: lintYaml: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index d1008181..42de66b5 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -11,7 +11,7 @@ on: jobs: golangci: name: lint - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Setup Go uses: actions/setup-go@v3 diff --git a/.github/workflows/publish-releases.yml b/.github/workflows/publish-releases.yml index 495341ad..a1ffa05e 100644 --- a/.github/workflows/publish-releases.yml +++ b/.github/workflows/publish-releases.yml @@ -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 @@ -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: diff --git a/.github/workflows/push-buildpackage.yml b/.github/workflows/push-buildpackage.yml index c2f5a399..68589c9c 100644 --- a/.github/workflows/push-buildpackage.yml +++ b/.github/workflows/push-buildpackage.yml @@ -10,7 +10,7 @@ env: jobs: push: name: Push - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout @@ -103,7 +103,7 @@ jobs: failure: name: Alert on Failure - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [push] if: ${{ always() && needs.push.result == 'failure' }} steps: diff --git a/.github/workflows/synchronize-labels.yml b/.github/workflows/synchronize-labels.yml index 3aaa0177..105a32b8 100644 --- a/.github/workflows/synchronize-labels.yml +++ b/.github/workflows/synchronize-labels.yml @@ -10,7 +10,7 @@ jobs: synchronize: name: Synchronize Labels runs-on: - - ubuntu-22.04 + - ubuntu-24.04 steps: - uses: actions/checkout@v3 - uses: micnncim/action-label-syncer@v1 diff --git a/.github/workflows/test-pull-request.yml b/.github/workflows/test-pull-request.yml index cd259804..b186be24 100644 --- a/.github/workflows/test-pull-request.yml +++ b/.github/workflows/test-pull-request.yml @@ -13,7 +13,7 @@ concurrency: jobs: unit: name: Unit Tests - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 outputs: builders: ${{ steps.builders.outputs.builders }} steps: @@ -41,7 +41,7 @@ jobs: integration: name: Integration Tests with Builders - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: unit strategy: matrix: @@ -64,7 +64,7 @@ jobs: roundup: name: Integration Tests if: ${{ always() }} - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: integration steps: - run: | @@ -79,7 +79,7 @@ jobs: upload: name: Upload Workflow Event Payload - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Upload Artifact uses: actions/upload-artifact@v4 diff --git a/.github/workflows/update-dependencies-from-metadata.yml b/.github/workflows/update-dependencies-from-metadata.yml index 8e1e763a..a5af2edd 100644 --- a/.github/workflows/update-dependencies-from-metadata.yml +++ b/.github/workflows/update-dependencies-from-metadata.yml @@ -388,7 +388,7 @@ jobs: failure: name: Alert on Failure - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [ retrieve, get-compile-and-test, test, compile, update-metadata, assemble ] if: ${{ always() && needs.retrieve.result == 'failure' || needs.get-compile-and-test.result == 'failure' || needs.test.result == 'failure' || needs.compile.result == 'failure' || needs.update-metadata.result == 'failure' || needs.assemble.result == 'failure' }} steps: diff --git a/.github/workflows/update-github-config.yml b/.github/workflows/update-github-config.yml index 79164ac6..a3d79176 100644 --- a/.github/workflows/update-github-config.yml +++ b/.github/workflows/update-github-config.yml @@ -10,7 +10,7 @@ concurrency: github_config_update jobs: build: name: Create PR to update shared files - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout @@ -63,7 +63,7 @@ jobs: failure: name: Alert on Failure - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [build] if: ${{ always() && needs.build.result == 'failure' }} steps: diff --git a/.github/workflows/update-go-mod-version.yml b/.github/workflows/update-go-mod-version.yml index b68db8ad..dc6a2d61 100644 --- a/.github/workflows/update-go-mod-version.yml +++ b/.github/workflows/update-go-mod-version.yml @@ -75,7 +75,7 @@ jobs: failure: name: Alert on Failure - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: [update-go] if: ${{ always() && needs.update-go.result == 'failure' }} steps: From c944edfe39a7676374db0e4420158a7b995122ff Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Tue, 15 Jul 2025 13:38:41 +0000 Subject: [PATCH 12/49] Updating github-config --- .github/workflows/approve-bot-pr.yml | 2 +- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/create-draft-release.yml | 6 +++--- .github/workflows/lint-yaml.yml | 4 ++-- .github/workflows/lint.yml | 2 +- .github/workflows/synchronize-labels.yml | 2 +- .github/workflows/test-pull-request.yml | 4 ++-- .github/workflows/update-github-config.yml | 4 ++-- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/approve-bot-pr.yml b/.github/workflows/approve-bot-pr.yml index 8dca7fea..3e3df202 100644 --- a/.github/workflows/approve-bot-pr.yml +++ b/.github/workflows/approve-bot-pr.yml @@ -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@v4 - name: Approve if: steps.human-commits.outputs.human_commits == 'false' && steps.unverified-commits.outputs.unverified_commits == 'false' diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 42f83858..d69118a0 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize CodeQL uses: github/codeql-action/init@v2 diff --git a/.github/workflows/create-draft-release.yml b/.github/workflows/create-draft-release.yml index 177f4a08..379acca9 100644 --- a/.github/workflows/create-draft-release.yml +++ b/.github/workflows/create-draft-release.yml @@ -26,7 +26,7 @@ jobs: with: go-version: 'stable' - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Run Unit Tests run: ./scripts/unit.sh - name: Get builders from integration.json @@ -51,7 +51,7 @@ jobs: with: go-version: 'stable' - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Run Integration Tests run: ./scripts/integration.sh --builder ${{ matrix.builder }} --token ${{ github.token }} env: @@ -68,7 +68,7 @@ jobs: go-version: 'stable' - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-tags: true diff --git a/.github/workflows/lint-yaml.yml b/.github/workflows/lint-yaml.yml index 538d1e68..9094b285 100644 --- a/.github/workflows/lint-yaml.yml +++ b/.github/workflows/lint-yaml.yml @@ -10,10 +10,10 @@ jobs: lintYaml: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Checkout github-config - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: paketo-buildpacks/github-config path: github-config diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 42de66b5..6922b4b0 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -19,7 +19,7 @@ jobs: go-version: 'stable' - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: golangci-lint uses: golangci/golangci-lint-action@v3 diff --git a/.github/workflows/synchronize-labels.yml b/.github/workflows/synchronize-labels.yml index 105a32b8..82f97f99 100644 --- a/.github/workflows/synchronize-labels.yml +++ b/.github/workflows/synchronize-labels.yml @@ -12,7 +12,7 @@ jobs: runs-on: - ubuntu-24.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: micnncim/action-label-syncer@v1 env: GITHUB_TOKEN: ${{ github.token }} diff --git a/.github/workflows/test-pull-request.yml b/.github/workflows/test-pull-request.yml index b186be24..de2ccd46 100644 --- a/.github/workflows/test-pull-request.yml +++ b/.github/workflows/test-pull-request.yml @@ -23,7 +23,7 @@ jobs: go-version: 'stable' - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Run Unit Tests env: @@ -54,7 +54,7 @@ jobs: go-version: 'stable' - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Run Integration Tests run: ./scripts/integration.sh --builder ${{ matrix.builder }} --token ${{ github.token }} diff --git a/.github/workflows/update-github-config.yml b/.github/workflows/update-github-config.yml index a3d79176..ca195446 100644 --- a/.github/workflows/update-github-config.yml +++ b/.github/workflows/update-github-config.yml @@ -14,12 +14,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }} - name: Checkout github-config - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: paketo-buildpacks/github-config path: github-config From 5a5a3bbca25b22f5119f36290eeafeea701462cb Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Fri, 18 Jul 2025 13:38:38 +0000 Subject: [PATCH 13/49] Updating github-config --- .github/workflows/codeql-analysis.yml | 6 +++--- .github/workflows/create-draft-release.yml | 6 +++--- .github/workflows/label-pr.yml | 2 +- .github/workflows/lint-yaml.yml | 2 +- .github/workflows/lint.yml | 4 ++-- .github/workflows/test-pull-request.yml | 4 ++-- .github/workflows/update-dependencies-from-metadata.yml | 2 +- scripts/.util/tools.json | 2 +- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index d69118a0..817f0625 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -24,12 +24,12 @@ jobs: uses: actions/checkout@v4 - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@v3 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/create-draft-release.yml b/.github/workflows/create-draft-release.yml index 379acca9..d02ce5b9 100644 --- a/.github/workflows/create-draft-release.yml +++ b/.github/workflows/create-draft-release.yml @@ -22,7 +22,7 @@ jobs: builders: ${{ steps.builders.outputs.builders }} steps: - name: Setup Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v5 with: go-version: 'stable' - name: Checkout @@ -47,7 +47,7 @@ jobs: fail-fast: false # don't cancel all test jobs when one fails steps: - name: Setup Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v5 with: go-version: 'stable' - name: Checkout @@ -63,7 +63,7 @@ jobs: needs: integration steps: - name: Setup Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v5 with: go-version: 'stable' diff --git a/.github/workflows/label-pr.yml b/.github/workflows/label-pr.yml index eeb54232..55f68506 100644 --- a/.github/workflows/label-pr.yml +++ b/.github/workflows/label-pr.yml @@ -18,7 +18,7 @@ jobs: 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 diff --git a/.github/workflows/lint-yaml.yml b/.github/workflows/lint-yaml.yml index 9094b285..930add17 100644 --- a/.github/workflows/lint-yaml.yml +++ b/.github/workflows/lint-yaml.yml @@ -19,7 +19,7 @@ jobs: path: github-config - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: 3.8 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 6922b4b0..4604be7f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Setup Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v5 with: go-version: 'stable' @@ -22,7 +22,7 @@ jobs: uses: actions/checkout@v4 - name: golangci-lint - uses: golangci/golangci-lint-action@v3 + uses: golangci/golangci-lint-action@v8 with: version: latest args: --timeout 3m0s diff --git a/.github/workflows/test-pull-request.yml b/.github/workflows/test-pull-request.yml index de2ccd46..cc0b95f1 100644 --- a/.github/workflows/test-pull-request.yml +++ b/.github/workflows/test-pull-request.yml @@ -18,7 +18,7 @@ jobs: builders: ${{ steps.builders.outputs.builders }} steps: - name: Setup Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v5 with: go-version: 'stable' @@ -49,7 +49,7 @@ jobs: fail-fast: false # don't cancel all test jobs when one fails steps: - name: Setup Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v5 with: go-version: 'stable' diff --git a/.github/workflows/update-dependencies-from-metadata.yml b/.github/workflows/update-dependencies-from-metadata.yml index a5af2edd..9e1a6774 100644 --- a/.github/workflows/update-dependencies-from-metadata.yml +++ b/.github/workflows/update-dependencies-from-metadata.yml @@ -245,7 +245,7 @@ jobs: echo "checksum-file=$(basename ./*.tgz.checksum)" >> "$GITHUB_OUTPUT" - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 + uses: aws-actions/configure-aws-credentials@v4 with: aws-access-key-id: ${{ secrets.AWS_S3_DEPENDENCIES_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_S3_DEPENDENCIES_SECRET_ACCESS_KEY }} diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index ea7a3010..8172be98 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,6 +1,6 @@ { "createpackage": "v1.73.0", - "jam": "v2.11.5", + "jam": "v2.12.0", "libpaktools": "v0.2.0", "pack": "v0.38.2" } From de837f383276a7860a581182641f74698b4d39b3 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Sat, 19 Jul 2025 13:36:11 +0000 Subject: [PATCH 14/49] Updating github-config --- .github/workflows/lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4604be7f..8de78b6a 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -22,7 +22,7 @@ jobs: uses: actions/checkout@v4 - name: golangci-lint - uses: golangci/golangci-lint-action@v8 + uses: golangci/golangci-lint-action@v3 with: version: latest args: --timeout 3m0s From bb843a2102bf59d56c19441fbe66dd9349272f6b Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Tue, 22 Jul 2025 13:38:54 +0000 Subject: [PATCH 15/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index 8172be98..a95996cc 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,6 +1,6 @@ { "createpackage": "v1.73.0", "jam": "v2.12.0", - "libpaktools": "v0.2.0", + "libpaktools": "v0.3.0", "pack": "v0.38.2" } From 74002aaf5dd3a79edc33d425f559108b4e5bb523 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Wed, 30 Jul 2025 13:39:25 +0000 Subject: [PATCH 16/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index a95996cc..8836edb6 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,6 +1,6 @@ { "createpackage": "v1.73.0", - "jam": "v2.12.0", + "jam": "v2.12.1", "libpaktools": "v0.3.0", "pack": "v0.38.2" } From a5b25357a0bc1227d4b1b3bf59226e2a58d83d5a Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Wed, 13 Aug 2025 13:38:19 +0000 Subject: [PATCH 17/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index 8836edb6..9b197dee 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,6 +1,6 @@ { "createpackage": "v1.73.0", - "jam": "v2.12.1", + "jam": "v2.13.0", "libpaktools": "v0.3.0", "pack": "v0.38.2" } From aa0d72d0697bc1a5dd5590cdba3516996c3cdd75 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Thu, 14 Aug 2025 13:38:23 +0000 Subject: [PATCH 18/49] Updating github-config --- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/create-draft-release.yml | 22 +++++++++---------- .github/workflows/lint.yml | 8 +++---- .github/workflows/test-pull-request.yml | 16 +++++++------- .../update-dependencies-from-metadata.yml | 4 ++-- .github/workflows/update-github-config.yml | 2 +- .github/workflows/update-go-mod-version.yml | 2 +- 7 files changed, 28 insertions(+), 28 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 817f0625..f9163601 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -6,7 +6,7 @@ on: pull_request: branches: [ main ] schedule: - - cron: '34 5 * * *' # daily at 5:34am UTC + - cron: '34 5 * * *' # daily at 5:34am UTC jobs: analyze: diff --git a/.github/workflows/create-draft-release.yml b/.github/workflows/create-draft-release.yml index d02ce5b9..01b58cc0 100644 --- a/.github/workflows/create-draft-release.yml +++ b/.github/workflows/create-draft-release.yml @@ -21,12 +21,12 @@ jobs: outputs: builders: ${{ steps.builders.outputs.builders }} steps: + - name: Checkout + uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v5 with: - go-version: 'stable' - - name: Checkout - uses: actions/checkout@v4 + go-version-file: go.mod - name: Run Unit Tests run: ./scripts/unit.sh - name: Get builders from integration.json @@ -46,12 +46,12 @@ jobs: builder: ${{ fromJSON(needs.unit.outputs.builders) }} fail-fast: false # don't cancel all test jobs when one fails steps: + - name: Checkout + uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v5 with: - go-version: 'stable' - - name: Checkout - uses: actions/checkout@v4 + go-version-file: go.mod - name: Run Integration Tests run: ./scripts/integration.sh --builder ${{ matrix.builder }} --token ${{ github.token }} env: @@ -62,16 +62,16 @@ jobs: runs-on: ubuntu-24.04 needs: integration steps: - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: 'stable' - - name: Checkout uses: actions/checkout@v4 with: fetch-tags: true + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + - name: Reset Draft Release id: reset uses: paketo-buildpacks/github-config/actions/release/reset-draft@main diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8de78b6a..5db0a353 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -13,13 +13,13 @@ jobs: name: lint runs-on: ubuntu-24.04 steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Go uses: actions/setup-go@v5 with: - go-version: 'stable' - - - name: Checkout - uses: actions/checkout@v4 + go-version-file: go.mod - name: golangci-lint uses: golangci/golangci-lint-action@v3 diff --git a/.github/workflows/test-pull-request.yml b/.github/workflows/test-pull-request.yml index cc0b95f1..383024ae 100644 --- a/.github/workflows/test-pull-request.yml +++ b/.github/workflows/test-pull-request.yml @@ -17,13 +17,13 @@ jobs: outputs: builders: ${{ steps.builders.outputs.builders }} steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Go uses: actions/setup-go@v5 with: - go-version: 'stable' - - - name: Checkout - uses: actions/checkout@v4 + go-version-file: go.mod - name: Run Unit Tests env: @@ -48,13 +48,13 @@ jobs: builder: ${{ fromJSON(needs.unit.outputs.builders) }} fail-fast: false # don't cancel all test jobs when one fails steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Go uses: actions/setup-go@v5 with: - go-version: 'stable' - - - name: Checkout - uses: actions/checkout@v4 + go-version-file: go.mod - name: Run Integration Tests run: ./scripts/integration.sh --builder ${{ matrix.builder }} --token ${{ github.token }} diff --git a/.github/workflows/update-dependencies-from-metadata.yml b/.github/workflows/update-dependencies-from-metadata.yml index 9e1a6774..d528932c 100644 --- a/.github/workflows/update-dependencies-from-metadata.yml +++ b/.github/workflows/update-dependencies-from-metadata.yml @@ -3,7 +3,7 @@ name: Update Dependencies From Metadata (Retrieve, Metadata, Compile, Test, Crea on: workflow_dispatch: schedule: - - cron: '57 13 * * *' # daily at 13:57 UTC + - cron: '57 13 * * *' # daily at 13:57 UTC jobs: retrieve: @@ -28,7 +28,7 @@ jobs: - name: Setup Go uses: actions/setup-go@v5 with: - go-version: 'stable' + go-version-file: go.mod - name: Run Retrieve id: retrieve diff --git a/.github/workflows/update-github-config.yml b/.github/workflows/update-github-config.yml index ca195446..a24481ed 100644 --- a/.github/workflows/update-github-config.yml +++ b/.github/workflows/update-github-config.yml @@ -2,7 +2,7 @@ name: Update shared github-config on: schedule: - - cron: '27 13 * * *' # daily at 13:27 UTC + - cron: '27 13 * * *' # daily at 13:27 UTC workflow_dispatch: {} concurrency: github_config_update diff --git a/.github/workflows/update-go-mod-version.yml b/.github/workflows/update-go-mod-version.yml index dc6a2d61..aff9d1e1 100644 --- a/.github/workflows/update-go-mod-version.yml +++ b/.github/workflows/update-go-mod-version.yml @@ -22,7 +22,7 @@ jobs: id: setup-go uses: actions/setup-go@v5 with: - go-version: 'stable' + go-version-file: go.mod - name: Get current go toolchain version id: current-go-version uses: paketo-buildpacks/github-config/actions/update-go-mod-version@main From fc8ef4c18fdb7f8cb7e56e29b1967f61961e4b1b Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Sat, 16 Aug 2025 13:34:21 +0000 Subject: [PATCH 19/49] Updating github-config --- .github/workflows/compile-dependency.yml | 106 +++++++++++++ .github/workflows/create-draft-release.yml | 95 ++++++++++-- .github/workflows/push-buildpackage.yml | 105 ++++++++++--- .../update-dependencies-from-metadata.yml | 69 +++------ scripts/build.sh | 105 ++++++++----- scripts/package.sh | 29 ++-- scripts/publish.sh | 142 ++++++++++++++++++ 7 files changed, 509 insertions(+), 142 deletions(-) create mode 100644 .github/workflows/compile-dependency.yml create mode 100755 scripts/publish.sh diff --git a/.github/workflows/compile-dependency.yml b/.github/workflows/compile-dependency.yml new file mode 100644 index 00000000..17e00fde --- /dev/null +++ b/.github/workflows/compile-dependency.yml @@ -0,0 +1,106 @@ +name: 'Compile Dependency on Target - Reusable Workflow' + +description: | + Compiles Dependency on given target, os, and arch + +on: + workflow_call: + inputs: + version: + description: 'dependency version' + required: true + type: string + target: + description: 'dependency OS target variant' + required: true + type: string + os: + description: 'platform OS (e.g., linux)' + required: true + type: string + arch: + description: 'platform architecture (e.g., amd64)' + required: true + type: string + shouldCompile: + description: 'whether to compile the dependency' + required: true + type: boolean + shouldTest: + description: 'whether to test the dependency after compilation' + required: true + type: boolean + uploadArtifactName: + description: 'name of the artifact to upload' + required: true + type: string + +jobs: + compile: + # Speed up compilation by using runners that match os and arch when they are set, otherwise fall back to emulation. + runs-on: ${{ (inputs.os == 'linux' && inputs.arch == 'arm64') && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} + + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Enable experimental features for Docker daemon and CLI + run: | + echo '{"experimental": true}' | sudo tee /etc/docker/daemon.json + sudo systemctl restart docker + mkdir -p ~/.docker + echo '{"experimental": "enabled"}' | sudo tee ~/.docker/config.json + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Setup before compilation + id: compile-setup + run: | + echo "outputdir=$(mktemp -d)" >> "$GITHUB_OUTPUT" + + - name: docker build + id: docker-build + env: + SKIP_LOGIN: true + if: ${{ inputs.shouldCompile == true || inputs.shouldCompile == 'true' }} + uses: actions-hub/docker/cli@master + with: + args: "build ${{ (inputs.os != '' && inputs.arch != '') && format('--platform {0}/{1}', inputs.os, inputs.arch) || '' }} -t compilation -f dependency/actions/compile/${{ inputs.target }}.Dockerfile dependency/actions/compile" + + - name: docker run + id: docker-run + uses: actions-hub/docker/cli@master + env: + SKIP_LOGIN: true + if: ${{ inputs.shouldCompile == true || inputs.shouldCompile == 'true' }} + with: + args: "run ${{ (inputs.os != '' && inputs.arch != '') && format('--platform {0}/{1}', inputs.os, inputs.arch) || '' }} -v ${{ steps.compile-setup.outputs.outputdir }}:/home compilation --outputDir /home --target ${{ inputs.target }} --version ${{ inputs.version }} ${{ inputs.os != '' && format('--os {0}', inputs.os) || '' }} ${{ inputs.arch != '' && format('--arch {0}', inputs.arch) || '' }}" + + - name: Print contents of output dir + shell: bash + run: ls -lah ${{ steps.compile-setup.outputs.outputdir }} + + - name: Test Dependency + working-directory: dependency + if: ${{ (inputs.shouldCompile == true || inputs.shouldCompile == 'true') && (inputs.shouldTest == true || inputs.shouldTest == 'true') }} + run: | + #!/usr/bin/env bash + set -euo pipefail + shopt -s inherit_errexit + + make test \ + version="${{ inputs.version }}" \ + tarballPath="${{ steps.compile-setup.outputs.outputdir }}/*.tgz" \ + os="${{ inputs.os }}" \ + arch="${{ inputs.arch }}" + + - name: Upload compiled artifact + uses: actions/upload-artifact@v4 + if: ${{ inputs.shouldCompile == true || inputs.shouldCompile == 'true' }} + with: + name: '${{ inputs.uploadArtifactName }}' + path: '${{ steps.compile-setup.outputs.outputdir }}/*' diff --git a/.github/workflows/create-draft-release.yml b/.github/workflows/create-draft-release.yml index 01b58cc0..9f940882 100644 --- a/.github/workflows/create-draft-release.yml +++ b/.github/workflows/create-draft-release.yml @@ -61,6 +61,12 @@ jobs: name: Release runs-on: ubuntu-24.04 needs: integration + services: + registry: + image: registry:2 + ports: + - 5000:5000 + steps: - name: Checkout uses: actions/checkout@v4 @@ -110,6 +116,16 @@ jobs: echo "buildpack_type=buildpack" >> "$GITHUB_OUTPUT" fi + - name: Get buildpack path + id: get_buildpack_path + run: | + + if [ -f "build/buildpackage.cnb" ]; then + echo "path=build/buildpackage.cnb" >> "$GITHUB_OUTPUT" + else + echo "path=build/buildpackage-linux-amd64.cnb" >> "$GITHUB_OUTPUT" + fi + - name: Create Release Notes id: create-release-notes uses: paketo-buildpacks/github-config/actions/release/notes@main @@ -117,6 +133,69 @@ jobs: repo: ${{ github.repository }} token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }} buildpack_type: ${{ steps.get_buildpack_type.outputs.buildpack_type }} + buildpackage_path: ${{ steps.get_buildpack_path.outputs.path }} + + - name: Get Image Digest + id: image_digest + run: | + image_name="localhost:5000/npm-install:latest" + + ./scripts/publish.sh \ + --buildpack-type ${{ steps.get_buildpack_type.outputs.buildpack_type }} \ + --image-ref $image_name + + echo "digest=$(sudo skopeo inspect "docker://${image_name}" --tls-verify=false | jq -r .Digest)" >> "$GITHUB_OUTPUT" + + - name: Set Correct Image Digest on the Release notes + run: | + printf '${{ steps.create-release-notes.outputs.release_body }}' \ + | sed -E \ + "s/\*\*Digest:\*\* \`sha256:[a-f0-9]{64}\`/\*\*Digest:\*\* \`${{ steps.image_digest.outputs.digest }}\`/" \ + > ./release_notes + + printf '${{ steps.image_digest.outputs.digest }}' > ./index-digest.sha256 + + - name: Create release assets + id: create_release_assets + run: | + release_assets=$(jq -n --arg repo_name "${{ github.event.repository.name }}" --arg tag "${{ steps.tag.outputs.tag }}" ' + [ + { + "path": "build/buildpack.tgz", + "name": ($repo_name + "-" + $tag + ".tgz"), + "content_type": "application/gzip" + }, + { + "path": "./index-digest.sha256", + "name": ($repo_name + "-" + $tag + "-" + "index-digest.sha256"), + "content_type": "text/plain" + } + ]') + + for filepath in build/*.cnb; do + filename=$(basename "$filepath") + asset_name="" + if [[ "$filename" == "buildpackage-linux-amd64.cnb" ]]; then + asset_name="${{ github.event.repository.name }}-${{ steps.tag.outputs.tag }}.cnb" + elif [[ "$filename" == "buildpackage.cnb" ]]; then + asset_name="${{ github.event.repository.name }}-${{ steps.tag.outputs.tag }}.cnb" + else + formatted_filename="${filename#buildpackage-}" + asset_name="${{ github.event.repository.name }}-${{ steps.tag.outputs.tag }}-${formatted_filename}" + fi + + release_assets=$(echo "$release_assets" | jq --arg asset_name "${asset_name}" --arg filepath "$filepath" ' + . + [ + { + "path": $filepath, + "name": $asset_name, + "content_type": "application/gzip" + } + ]') + done + + release_assets=$(jq -c <<< "$release_assets" ) + printf "release_assets=%s\n" "${release_assets}" >> "$GITHUB_OUTPUT" - name: Create Release uses: paketo-buildpacks/github-config/actions/release/create@main @@ -126,21 +205,9 @@ jobs: tag_name: v${{ steps.tag.outputs.tag }} target_commitish: ${{ github.sha }} name: v${{ steps.tag.outputs.tag }} - body: ${{ steps.create-release-notes.outputs.release_body }} + body_filepath: "./release_notes" draft: true - assets: | - [ - { - "path": "build/buildpack.tgz", - "name": "${{ github.event.repository.name }}-${{ steps.tag.outputs.tag }}.tgz", - "content_type": "application/gzip" - }, - { - "path": "build/buildpackage.cnb", - "name": "${{ github.event.repository.name }}-${{ steps.tag.outputs.tag }}.cnb", - "content_type": "application/gzip" - } - ] + assets: ${{ steps.create_release_assets.outputs.release_assets }} failure: name: Alert on Failure diff --git a/.github/workflows/push-buildpackage.yml b/.github/workflows/push-buildpackage.yml index 68589c9c..8d97a5c4 100644 --- a/.github/workflows/push-buildpackage.yml +++ b/.github/workflows/push-buildpackage.yml @@ -4,6 +4,7 @@ on: release: types: - published + env: REGISTRIES_FILENAME: "registries.json" @@ -11,6 +12,14 @@ jobs: push: name: Push runs-on: ubuntu-24.04 + env: + 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 }} + steps: - name: Checkout @@ -25,16 +34,31 @@ 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" + echo "download_cnb_file_url=$(jq -r --arg tag_full "$FULL_VERSION" '.release.assets[] | select(.name | endswith($tag_full + ".cnb")) | .url' "${GITHUB_EVENT_PATH}")" >> "$GITHUB_OUTPUT" + echo "download_sha256_file_url=$(jq -r '.release.assets[] | select(.name | endswith("index-digest.sha256")) | .url' "${GITHUB_EVENT_PATH}")" >> "$GITHUB_OUTPUT" - - name: Download - id: download + - name: Download .cnb buildpack uses: paketo-buildpacks/github-config/actions/release/download-asset@main with: - url: ${{ steps.event.outputs.download_url }} + url: ${{ steps.event.outputs.download_cnb_file_url }} output: "/github/workspace/buildpackage.cnb" token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }} + - name: Download .tgz buildpack + uses: paketo-buildpacks/github-config/actions/release/download-asset@main + with: + url: ${{ steps.event.outputs.download_tgz_file_url }} + output: "/github/workspace/buildpack.tgz" + token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }} + + - name: Download .sha digest + uses: paketo-buildpacks/github-config/actions/release/download-asset@main + with: + url: ${{ steps.event.outputs.download_sha256_file_url }} + output: "/github/workspace/index-digest.sha256" + token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }} + - name: Parse Configs id: parse_configs run: | @@ -64,41 +88,74 @@ jobs: exit 1 fi - - name: Push to GCR - if: ${{ steps.parse_configs.outputs.push_to_gcr == 'true' }} - env: - GCR_PUSH_BOT_JSON_KEY: ${{ secrets.GCR_PUSH_BOT_JSON_KEY }} + - name: Get buildpack type + id: get_buildpack_type 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" + if [ -f "extension.toml" ]; then + echo "buildpack_type=extension" >> "$GITHUB_OUTPUT" + else + echo "buildpack_type=buildpack" >> "$GITHUB_OUTPUT" + 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 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' + echo "${DOCKERHUB_PASSWORD}" | sudo skopeo login --username "${DOCKERHUB_USERNAME}" --password-stdin ${DOCKERHUB_REGISTRY} + + ./scripts/publish.sh \ + --archive-path ./buildpack.tgz \ + --buildpack-type ${{ steps.get_buildpack_type.outputs.buildpack_type }} \ + --image-ref "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" + + ## Validate that the digest pushed to registry matches with the one mentioned on the readme file + pushed_image_index_digest=$(sudo skopeo inspect "docker://${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" | jq -r .Digest) + + if [ "$(cat ./index-digest.sha256)" != "$pushed_image_index_digest" ]; then + echo "Image index digest pushed to registry does not match with the one mentioned on the readme file" + exit 1; + fi + + sudo skopeo copy "docker://${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" "docker://${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_minor }}" --multi-arch all + sudo skopeo copy "docker://${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" "docker://${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_major }}" --multi-arch all + sudo skopeo copy "docker://${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" "docker://${DOCKERHUB_REGISTRY}/${IMAGE}:latest" --multi-arch all 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: Push to GCR + if: ${{ steps.parse_configs.outputs.push_to_gcr == 'true' }} + run: | + echo "${GCR_PASSWORD}" | sudo skopeo login --username "${GCR_USERNAME}" --password-stdin "${GCR_REGISTRY}" + + sudo skopeo copy "docker://${DOCKERHUB_REGISTRY}/${{ steps.push.outputs.image }}" "docker://${GCR_REGISTRY}/${{ github.repository }}:${{ steps.event.outputs.tag_full }}" --multi-arch all + sudo skopeo copy "docker://${DOCKERHUB_REGISTRY}/${{ steps.push.outputs.image }}" "docker://${GCR_REGISTRY}/${{ github.repository }}:${{ steps.event.outputs.tag_minor }}" --multi-arch all + sudo skopeo copy "docker://${DOCKERHUB_REGISTRY}/${{ steps.push.outputs.image }}" "docker://${GCR_REGISTRY}/${{ github.repository }}:${{ steps.event.outputs.tag_major }}" --multi-arch all + sudo skopeo copy "docker://${DOCKERHUB_REGISTRY}/${{ steps.push.outputs.image }}" "docker://${GCR_REGISTRY}/${{ github.repository }}:latest" --multi-arch all - 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: diff --git a/.github/workflows/update-dependencies-from-metadata.yml b/.github/workflows/update-dependencies-from-metadata.yml index d528932c..7066a10c 100644 --- a/.github/workflows/update-dependencies-from-metadata.yml +++ b/.github/workflows/update-dependencies-from-metadata.yml @@ -63,7 +63,6 @@ jobs: printf "compilation-json<<%s\n%s\n%s\n" "${delimiter}" "${compilation}" "${delimiter}" >> "$GITHUB_OUTPUT" # see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings echo "compilation-length=$complength" >> "$GITHUB_OUTPUT" - - name: Upload `${{ steps.retrieve.outputs.metadata-filepath }}` uses: actions/upload-artifact@v4 with: @@ -168,50 +167,15 @@ jobs: # AND: # (3) there is at least one version to compile/test if: ${{ needs.retrieve.outputs.compilation-length > 0 && (needs.get-compile-and-test.outputs.should-compile == 'true' || needs.get-compile-and-test.outputs.should-test == 'true') }} - runs-on: ubuntu-latest - steps: - - name: Check out code - uses: actions/checkout@v4 - - - name: Make Temporary Artifact Directory - id: make-outputdir - run: | - echo "outputdir=$(mktemp -d)" >> "$GITHUB_OUTPUT" - - # Compile if all of the following conditions are met: - # (1) compilation Github Action presetn in the buildpack directory - # (2) checksum in metadata.json is empty - # (3) URI in metadata.json is empty - - name: Compile version ${{ matrix.includes.version }} on ${{ matrix.includes.target }} Dockerfile - id: compile - if: ${{ needs.get-compile-and-test.outputs.should-compile && matrix.includes.checksum == '' && matrix.includes.uri == '' }} - uses: ./dependency/actions/compile - with: - version: "${{ matrix.includes.version }}" - outputdir: "${{ steps.make-outputdir.outputs.outputdir }}" - target: "${{ matrix.includes.target }}" - - # If compiled, upload the tarball and checksum file for usage in the Update metadata job - - name: Upload workflow asset - uses: actions/upload-artifact@v4 - if: ${{ needs.get-compile-and-test.outputs.should-compile && matrix.includes.checksum == '' && matrix.includes.uri == '' }} - with: - name: '${{ needs.retrieve.outputs.id }}-${{ matrix.includes.version }}-${{ matrix.includes.target }}' - path: '${{ steps.make-outputdir.outputs.outputdir }}/*' - - # Test the dependency tarball if: - # (1) dependency testing code is present in the buildpack directory - - name: Test Dependency - working-directory: dependency - if: ${{ needs.get-compile-and-test.outputs.should-test == 'true' }} - run: | - #!/usr/bin/env bash - set -euo pipefail - shopt -s inherit_errexit - - make test \ - version="${{ matrix.includes.version }}" \ - tarballPath="${{ steps.make-outputdir.outputs.outputdir }}/*.tgz" + uses: ./.github/workflows/compile-dependency.yml + with: + version: "${{ matrix.includes.version }}" + target: "${{ matrix.includes.target }}" + os: "${{ matrix.includes.os }}" + arch: "${{ matrix.includes.arch }}" + shouldCompile: ${{ matrix.includes.checksum == '' && matrix.includes.uri == '' }} + shouldTest: ${{ matrix.includes.checksum == '' && matrix.includes.uri == '' && needs.get-compile-and-test.outputs.should-test == 'true' }} + uploadArtifactName: "${{ needs.retrieve.outputs.id }}-${{ matrix.includes.version }}-${{ matrix.includes.os != '' && matrix.includes.os || 'linux' }}-${{ matrix.includes.arch != '' && matrix.includes.arch || 'amd64' }}-${{ matrix.includes.target }}" # Add in the checksum and URI fields to the metadata if the dependency was compiled update-metadata: @@ -232,7 +196,7 @@ jobs: - name: Download artifact files uses: actions/download-artifact@v4 with: - name: '${{ needs.retrieve.outputs.id }}-${{ matrix.includes.version }}-${{ matrix.includes.target }}' + name: "${{ needs.retrieve.outputs.id }}-${{ matrix.includes.version }}-${{ matrix.includes.os != '' && matrix.includes.os || 'linux' }}-${{ matrix.includes.arch != '' && matrix.includes.arch || 'amd64' }}-${{ matrix.includes.target }}" - name: Get artifact file name id: get-file-names @@ -277,8 +241,13 @@ jobs: set -euo pipefail shopt -s inherit_errexit - metadata_file_name="${{ matrix.includes.target }}-${{ matrix.includes.version }}-metadata-file.json" - cat metadata.json | jq -r ['.[] | select( .version == "${{ matrix.includes.version }}" and .target == "${{ matrix.includes.target }}")'] > $metadata_file_name + metadata_file_name="${{ matrix.includes.target }}-${{ matrix.includes.version }}-${{ matrix.includes.os != '' && matrix.includes.os || 'linux' }}-${{ matrix.includes.arch != '' && matrix.includes.arch || 'amd64' }}-metadata-file.json" + if [[ -z "${{ matrix.includes.os }}" && -z "${{ matrix.includes.arch }}" ]]; then + cat metadata.json | jq -r ['.[] | select( .version == "${{ matrix.includes.version }}" and .target == "${{ matrix.includes.target }}")'] > $metadata_file_name + else + echo "multi-arch buildpack with os and arch specified" + cat metadata.json | jq -r ['.[] | select( .version == "${{ matrix.includes.version }}" and .target == "${{ matrix.includes.target }}" and .os == "${{ matrix.includes.os }}" and .arch == "${{ matrix.includes.arch }}")'] > $metadata_file_name + fi echo "file=$(echo $metadata_file_name)" >> "$GITHUB_OUTPUT" - name: Update `checksum` and `uri` in metadata for ${{ matrix.includes.target }} ${{ matrix.includes.version }} @@ -290,6 +259,8 @@ jobs: checksum: ${{ steps.get-checksum.outputs.checksum }} uri: ${{ steps.upload.outputs.dependency-uri }} file: ${{ steps.dependency-metadata.outputs.file }} + os: ${{ matrix.includes.os }} + arch: ${{ matrix.includes.arch }} - name: Upload modified metadata uses: actions/upload-artifact@v4 @@ -384,7 +355,7 @@ jobs: with: token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }} title: "Updates buildpack.toml with ${{ steps.update.outputs.new-versions }}" - branch: automation/buildpack.toml/update-from-metadata + branch: automation/dependencies/update-from-metadata failure: name: Alert on Failure diff --git a/scripts/build.sh b/scripts/build.sh index c6e1413e..11ab80b4 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -3,10 +3,15 @@ set -eu set -o pipefail +readonly ROOT_DIR="$(cd "$(dirname "${0}")/.." && pwd)" readonly PROGDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" readonly BUILDPACKDIR="$(cd "${PROGDIR}/.." && pwd)" +# shellcheck source=SCRIPTDIR/.util/print.sh +source "${ROOT_DIR}/scripts/.util/print.sh" + function main() { + local targets=() while [[ "${#}" != 0 ]]; do case "${1}" in --help|-h) @@ -15,6 +20,11 @@ function main() { exit 0 ;; + --target) + targets+=("${2}") + shift 2 + ;; + "") # skip if the argument is empty shift 1 @@ -27,8 +37,18 @@ function main() { mkdir -p "${BUILDPACKDIR}/bin" + if [[ ${#targets[@]} -eq 0 ]]; then + targets=("linux/amd64") + util::print::info "Setting default target platform architecture to: linux/amd64" + fi + run::build cmd::build + + ## For backwards compatibility with amd64 wokflows + if [[ ${#targets[@]} -eq 1 && "${targets[0]}" == "linux/amd64" ]]; then + cp -r "${BUILDPACKDIR}/linux/amd64/bin/" "${BUILDPACKDIR}/" + fi } function usage() { @@ -38,39 +58,49 @@ build.sh [OPTIONS] Builds the buildpack executables. OPTIONS - --help -h prints the command usage + --target strings Target platforms to build for. + Targets should be in the format '[os][/arch][/variant]'. + - To specify two different architectures: '--target "linux/amd64" --target "linux/arm64"' + --help -h prints the command usage USAGE } function run::build() { if [[ -f "${BUILDPACKDIR}/run/main.go" ]]; then - pushd "${BUILDPACKDIR}/bin" > /dev/null || return - printf "%s" "Building run... " + pushd "${BUILDPACKDIR}" > /dev/null || return + for target in "${targets[@]}"; do + platform=$(echo "${target}" | cut -d '/' -f1) + arch=$(echo "${target}" | cut -d'/' -f2) - GOOS=linux \ - CGO_ENABLED=0 \ - go build \ - -ldflags="-s -w" \ - -o "run" \ - "${BUILDPACKDIR}/run" + util::print::title "Building run... for platform: ${platform} and arch: ${arch}" - echo "Success!" + GOOS=$platform \ + GOARCH=$arch \ + CGO_ENABLED=0 \ + go build \ + -ldflags="-s -w" \ + -o "${platform}/${arch}/bin/run" \ + "${BUILDPACKDIR}/run" - names=("detect") + echo "Success!" - if [ -f "${BUILDPACKDIR}/extension.toml" ]; then - names+=("generate") - else - names+=("build") - fi + names=("detect") - for name in "${names[@]}"; do - printf "%s" "Linking ${name}... " + if [ -f "${BUILDPACKDIR}/extension.toml" ]; then + names+=("generate") + else + names+=("build") + fi - ln -sf "run" "${name}" + for name in "${names[@]}"; do + printf "%s" "Linking ${name}... " - echo "Success!" + ln -fs "run" "${platform}/${arch}/bin/${name}" + + echo "Success!" + done done + popd > /dev/null || return fi } @@ -80,21 +110,26 @@ function cmd::build() { local name for src in "${BUILDPACKDIR}"/cmd/*; do name="$(basename "${src}")" - - if [[ -f "${src}/main.go" ]]; then - printf "%s" "Building ${name}... " - - GOOS="linux" \ - CGO_ENABLED=0 \ - go build \ - -ldflags="-s -w" \ - -o "${BUILDPACKDIR}/bin/${name}" \ - "${src}/main.go" - - echo "Success!" - else - printf "%s" "Skipping ${name}... " - fi + for target in "${targets[@]}"; do + platform=$(echo "${target}" | cut -d '/' -f1) + arch=$(echo "${target}" | cut -d'/' -f2) + + if [[ -f "${src}/main.go" ]]; then + util::print::title "Building ${name}... for platform: ${platform} and arch: ${arch}" + + GOOS=$platform \ + GOARCH=$arch \ + CGO_ENABLED=0 \ + go build \ + -ldflags="-s -w" \ + -o "${BUILDPACKDIR}/${platform}/${arch}/bin/${name}" \ + "${src}/main.go" + + echo "Success!" + else + printf "%s" "Skipping ${name}... " + fi + done done fi } diff --git a/scripts/package.sh b/scripts/package.sh index 916363eb..cb79bfdd 100755 --- a/scripts/package.sh +++ b/scripts/package.sh @@ -144,26 +144,15 @@ function buildpackage::create() { util::print::title "Packaging ${buildpack_type}... ${output}" - if [ "$buildpack_type" == "extension" ]; then - cwd=$(pwd) - cd ${BUILD_DIR} - mkdir cnbdir - cd cnbdir - cp ../buildpack.tgz . - tar -xvf buildpack.tgz - rm buildpack.tgz - - pack \ - extension package "${output}" \ - --format file - - cd $cwd - else - pack \ - buildpack package "${output}" \ - --path "${BUILD_DIR}/buildpack.tgz" \ - --format file - fi + mkdir ${BUILD_DIR}/cnbdir + tar -xvf ${BUILD_DIR}/buildpack.tgz -C ${BUILD_DIR}/cnbdir + + pack \ + "${buildpack_type}" package "${output}" \ + --path ${BUILD_DIR}/cnbdir \ + --format file + + rm -rf ${BUILD_DIR}/cnbdir } main "${@:-}" \ No newline at end of file diff --git a/scripts/publish.sh b/scripts/publish.sh new file mode 100755 index 00000000..4c2afbcf --- /dev/null +++ b/scripts/publish.sh @@ -0,0 +1,142 @@ +#!/usr/bin/env bash + +set -eu +set -o pipefail + +readonly ROOT_DIR="$(cd "$(dirname "${0}")/.." && pwd)" +readonly BIN_DIR="${ROOT_DIR}/.bin" + +# shellcheck source=SCRIPTDIR/.util/tools.sh +source "${ROOT_DIR}/scripts/.util/tools.sh" + +# shellcheck source=SCRIPTDIR/.util/print.sh +source "${ROOT_DIR}/scripts/.util/print.sh" + +function main { + local archive_path buildpack_type image_ref token + token="" + + while [[ "${#}" != 0 ]]; do + case "${1}" in + --archive-path | -a) + archive_path="${2}" + shift 2 + ;; + + --buildpack-type | -bt) + buildpack_type="${2}" + shift 2 + ;; + + --image-ref | -i) + image_ref+=("${2}") + shift 2 + ;; + + --token | -t) + token="${2}" + shift 2 + ;; + + --help | -h) + shift 1 + usage + exit 0 + ;; + + "") + # skip if the argument is empty + shift 1 + ;; + + *) + util::print::error "unknown argument \"${1}\"" + ;; + esac + done + + if [[ -z "${image_ref:-}" ]]; then + usage + util::print::error "--image-ref is required" + fi + + if [[ -z "${buildpack_type:-}" ]]; then + usage + util::print::error "--buildpack-type is required" + fi + + if [[ ${buildpack_type} != "buildpack" && ${buildpack_type} != "extension" ]]; then + usage + util::print::error "--buildpack-type accepted values: [\"buildpack\",\"extension\"]" + fi + + if [[ -z "${archive_path:-}" ]]; then + util::print::info "Using default archive path: ${ROOT_DIR}/build/buildpack.tgz" + archive_path="${ROOT_DIR}/build/buildpack.tgz" + else + archive_path="${archive_path}" + fi + + repo::prepare + + tools::install "${token}" + + buildpack::publish "${image_ref}" "${buildpack_type}" "${archive_path}" +} + +function usage() { + cat <<-USAGE +Publishes a buildpack or an extension in to a registry. + +OPTIONS + -a, --archive-path Path to the buildpack or extension arhive (default: ${ROOT_DIR}/build/buildpack.tgz) (optional) + -h, --help Prints the command usage + -i, --image-ref List of image reference to publish to (required) + -bt --buildpack-type Type of buildpack to publish (accepted values: buildpack, extension) (required) + -t, --token Token used to download assets from GitHub (e.g. jam, pack, etc) (optional) + +USAGE +} + +function repo::prepare() { + util::print::title "Preparing repo..." + + mkdir -p "${BIN_DIR}" + + export PATH="${BIN_DIR}:${PATH}" +} + +function tools::install() { + local token + token="${1}" + + util::tools::pack::install \ + --directory "${BIN_DIR}" \ + --token "${token}" +} + +function buildpack::publish() { + + local image_ref buildpack_type archive_path + image_ref="${1}" + buildpack_type="${2}" + archive_path="${3}" + + util::print::title "Publishing ${buildpack_type}..." + + util::print::info "Extracting archive..." + tmp_dir=$(mktemp -d -p $ROOT_DIR) + tar -xvf $archive_path -C $tmp_dir + + util::print::info "Publishing ${buildpack_type} to ${image_ref}" + + pack \ + ${buildpack_type} package $image_ref \ + --path $tmp_dir \ + --format image \ + --publish + + rm -rf $tmp_dir +} + +main "${@:-}" From b272d2000995ea298d5c232fa24c45f501c806c2 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Fri, 22 Aug 2025 13:35:32 +0000 Subject: [PATCH 20/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index 9b197dee..4d02e3fc 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,6 +1,6 @@ { "createpackage": "v1.73.0", - "jam": "v2.13.0", + "jam": "v2.14.0", "libpaktools": "v0.3.0", "pack": "v0.38.2" } From 922a7359e010e24e07e0be96c76b1e12e1d9e68d Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Sat, 23 Aug 2025 13:32:53 +0000 Subject: [PATCH 21/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index 4d02e3fc..d0f6fd92 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,6 +1,6 @@ { "createpackage": "v1.73.0", - "jam": "v2.14.0", + "jam": "v2.14.1", "libpaktools": "v0.3.0", "pack": "v0.38.2" } From b5279d7357906cfb0b78c09d41b7dae4a2f2ff6d Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Sun, 24 Aug 2025 13:33:12 +0000 Subject: [PATCH 22/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index d0f6fd92..aac0728d 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,6 +1,6 @@ { "createpackage": "v1.73.0", - "jam": "v2.14.1", + "jam": "v2.14.2", "libpaktools": "v0.3.0", "pack": "v0.38.2" } From 0a4f51b107f13d08f760b690117a1c63960709d9 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Sat, 6 Sep 2025 13:30:03 +0000 Subject: [PATCH 23/49] Updating github-config --- .github/workflows/push-buildpackage.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/push-buildpackage.yml b/.github/workflows/push-buildpackage.yml index 8d97a5c4..0dda5c80 100644 --- a/.github/workflows/push-buildpackage.yml +++ b/.github/workflows/push-buildpackage.yml @@ -112,6 +112,7 @@ jobs: password: ${{ env.GCR_PASSWORD }} registry: ${{ env.GCR_REGISTRY }} + - uses: buildpacks/github-actions/setup-tools@v5.5.4 - name: Push to DockerHub if: ${{ steps.parse_configs.outputs.push_to_dockerhub == 'true' }} id: push @@ -126,11 +127,14 @@ jobs: --buildpack-type ${{ steps.get_buildpack_type.outputs.buildpack_type }} \ --image-ref "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" - ## Validate that the digest pushed to registry matches with the one mentioned on the readme file - pushed_image_index_digest=$(sudo skopeo inspect "docker://${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" | jq -r .Digest) + ## Validate that the image index digest pushed to registry matches with the one on the release notes + pushed_image_index_digest=$(crane digest "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" | xargs) + + echo "Index digest from release notes: $(cat ./index-digest.sha256)" + echo "Index digest pushed to registry: $pushed_image_index_digest" if [ "$(cat ./index-digest.sha256)" != "$pushed_image_index_digest" ]; then - echo "Image index digest pushed to registry does not match with the one mentioned on the readme file" + echo "The image index digest pushed to registry does not match the expected digest from release notes" exit 1; fi From cad441acf520418e65db5f2cc05a90e719f18596 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Fri, 12 Sep 2025 13:33:32 +0000 Subject: [PATCH 24/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index aac0728d..c8845b4d 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,6 +1,6 @@ { "createpackage": "v1.73.0", - "jam": "v2.14.2", + "jam": "v2.15.0", "libpaktools": "v0.3.0", "pack": "v0.38.2" } From 9fabfd3e89a29ba58aedfe813e85a21df8323648 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Fri, 19 Sep 2025 13:34:47 +0000 Subject: [PATCH 25/49] Updating github-config --- .github/workflows/approve-bot-pr.yml | 2 +- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/compile-dependency.yml | 2 +- .github/workflows/create-draft-release.yml | 14 +++++++------- .github/workflows/lint-yaml.yml | 4 ++-- .github/workflows/lint.yml | 4 ++-- .github/workflows/push-buildpackage.yml | 4 ++-- .github/workflows/synchronize-labels.yml | 2 +- .github/workflows/test-pull-request.yml | 8 ++++---- .../update-dependencies-from-metadata.yml | 12 ++++++------ .github/workflows/update-github-config.yml | 4 ++-- .github/workflows/update-go-mod-version.yml | 4 ++-- scripts/publish.sh | 2 +- 13 files changed, 32 insertions(+), 32 deletions(-) diff --git a/.github/workflows/approve-bot-pr.yml b/.github/workflows/approve-bot-pr.yml index 3e3df202..d958d9a4 100644 --- a/.github/workflows/approve-bot-pr.yml +++ b/.github/workflows/approve-bot-pr.yml @@ -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@v4 + uses: actions/checkout@v5 - name: Approve if: steps.human-commits.outputs.human_commits == 'false' && steps.unverified-commits.outputs.unverified_commits == 'false' diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index f9163601..b9e18a63 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Initialize CodeQL uses: github/codeql-action/init@v3 diff --git a/.github/workflows/compile-dependency.yml b/.github/workflows/compile-dependency.yml index 17e00fde..c9f208fd 100644 --- a/.github/workflows/compile-dependency.yml +++ b/.github/workflows/compile-dependency.yml @@ -42,7 +42,7 @@ jobs: steps: - name: Check out code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Enable experimental features for Docker daemon and CLI run: | diff --git a/.github/workflows/create-draft-release.yml b/.github/workflows/create-draft-release.yml index 9f940882..1c947a9a 100644 --- a/.github/workflows/create-draft-release.yml +++ b/.github/workflows/create-draft-release.yml @@ -22,9 +22,9 @@ jobs: builders: ${{ steps.builders.outputs.builders }} steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: go.mod - name: Run Unit Tests @@ -47,9 +47,9 @@ jobs: fail-fast: false # don't cancel all test jobs when one fails steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: go.mod - name: Run Integration Tests @@ -63,18 +63,18 @@ jobs: needs: integration services: registry: - image: registry:2 + image: registry:3 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-tags: true - name: Setup Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: go.mod diff --git a/.github/workflows/lint-yaml.yml b/.github/workflows/lint-yaml.yml index 930add17..f4f032bc 100644 --- a/.github/workflows/lint-yaml.yml +++ b/.github/workflows/lint-yaml.yml @@ -10,10 +10,10 @@ jobs: lintYaml: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Checkout github-config - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: repository: paketo-buildpacks/github-config path: github-config diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 5db0a353..31737ef6 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -14,10 +14,10 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: go.mod diff --git a/.github/workflows/push-buildpackage.yml b/.github/workflows/push-buildpackage.yml index 0dda5c80..810183bd 100644 --- a/.github/workflows/push-buildpackage.yml +++ b/.github/workflows/push-buildpackage.yml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Parse Event id: event @@ -112,7 +112,7 @@ jobs: password: ${{ env.GCR_PASSWORD }} registry: ${{ env.GCR_REGISTRY }} - - uses: buildpacks/github-actions/setup-tools@v5.5.4 + - uses: buildpacks/github-actions/setup-tools@v5.9.4 - name: Push to DockerHub if: ${{ steps.parse_configs.outputs.push_to_dockerhub == 'true' }} id: push diff --git a/.github/workflows/synchronize-labels.yml b/.github/workflows/synchronize-labels.yml index 82f97f99..fc0f5163 100644 --- a/.github/workflows/synchronize-labels.yml +++ b/.github/workflows/synchronize-labels.yml @@ -12,7 +12,7 @@ jobs: runs-on: - ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: micnncim/action-label-syncer@v1 env: GITHUB_TOKEN: ${{ github.token }} diff --git a/.github/workflows/test-pull-request.yml b/.github/workflows/test-pull-request.yml index 383024ae..d86d4dd7 100644 --- a/.github/workflows/test-pull-request.yml +++ b/.github/workflows/test-pull-request.yml @@ -18,10 +18,10 @@ jobs: builders: ${{ steps.builders.outputs.builders }} steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: go.mod @@ -49,10 +49,10 @@ jobs: fail-fast: false # don't cancel all test jobs when one fails steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: go.mod diff --git a/.github/workflows/update-dependencies-from-metadata.yml b/.github/workflows/update-dependencies-from-metadata.yml index 7066a10c..8ee6586f 100644 --- a/.github/workflows/update-dependencies-from-metadata.yml +++ b/.github/workflows/update-dependencies-from-metadata.yml @@ -23,10 +23,10 @@ jobs: compilation-length: ${{ steps.retrieve.outputs.compilation-length }} steps: - name: Check out code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: go.mod @@ -86,7 +86,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Has Compilation Action? id: compile-check @@ -121,7 +121,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Make Temporary Artifact Directory id: make-outputdir @@ -191,7 +191,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Download artifact files uses: actions/download-artifact@v4 @@ -284,7 +284,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Checkout Branch uses: paketo-buildpacks/github-config/actions/pull-request/checkout-branch@main diff --git a/.github/workflows/update-github-config.yml b/.github/workflows/update-github-config.yml index a24481ed..d3f8b49b 100644 --- a/.github/workflows/update-github-config.yml +++ b/.github/workflows/update-github-config.yml @@ -14,12 +14,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }} - name: Checkout github-config - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: repository: paketo-buildpacks/github-config path: github-config diff --git a/.github/workflows/update-go-mod-version.yml b/.github/workflows/update-go-mod-version.yml index aff9d1e1..44248a47 100644 --- a/.github/workflows/update-go-mod-version.yml +++ b/.github/workflows/update-go-mod-version.yml @@ -13,14 +13,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Checkout PR Branch uses: paketo-buildpacks/github-config/actions/pull-request/checkout-branch@main with: branch: automation/go-mod-update/update-main - name: Setup Go id: setup-go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: go.mod - name: Get current go toolchain version diff --git a/scripts/publish.sh b/scripts/publish.sh index 4c2afbcf..6668542d 100755 --- a/scripts/publish.sh +++ b/scripts/publish.sh @@ -29,7 +29,7 @@ function main { ;; --image-ref | -i) - image_ref+=("${2}") + image_ref="${2}" shift 2 ;; From 51f44e91ac738d1e35a98807e7a0d87d986e85ac Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Tue, 23 Sep 2025 13:35:21 +0000 Subject: [PATCH 26/49] Updating github-config --- scripts/.util/tools.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.sh b/scripts/.util/tools.sh index 56c0cf3d..226012ef 100644 --- a/scripts/.util/tools.sh +++ b/scripts/.util/tools.sh @@ -244,7 +244,7 @@ function util::tools::libpak-tools::install () { os=$(util::tools::os) arch=$(util::tools::arch --format-amd64-x86_64) - curl "https://github.com/paketo-buildpacks/libpak-tools/releases/download/${version}/libpak-tools_${os^}_${arch}.tar.gz" \ + curl "https://github.com/paketo-buildpacks/libpak-tools/releases/download/${version}/libpak-tools_${os}_${arch}.tar.gz" \ "${curl_args[@]}" tar -xzf "${dir}/libpak-tools.tar.gz" -C $dir From f39f09ce60355a2bd47f93f0705ef2802ed65ef8 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Wed, 8 Oct 2025 13:35:50 +0000 Subject: [PATCH 27/49] Updating github-config --- .github/workflows/push-buildpackage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push-buildpackage.yml b/.github/workflows/push-buildpackage.yml index 810183bd..f3405855 100644 --- a/.github/workflows/push-buildpackage.yml +++ b/.github/workflows/push-buildpackage.yml @@ -112,7 +112,7 @@ jobs: password: ${{ env.GCR_PASSWORD }} registry: ${{ env.GCR_REGISTRY }} - - uses: buildpacks/github-actions/setup-tools@v5.9.4 + - uses: buildpacks/github-actions/setup-tools@v5.9.5 - name: Push to DockerHub if: ${{ steps.parse_configs.outputs.push_to_dockerhub == 'true' }} id: push From a898bd6ab232fa69c64b41bd36c7695594fb801d Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Thu, 9 Oct 2025 13:36:09 +0000 Subject: [PATCH 28/49] Updating github-config --- .github/workflows/codeql-analysis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index b9e18a63..8729f8a8 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -24,12 +24,12 @@ jobs: uses: actions/checkout@v5 - name: Initialize CodeQL - uses: github/codeql-action/init@v3 + uses: github/codeql-action/init@v4 with: languages: ${{ matrix.language }} - name: Autobuild - uses: github/codeql-action/autobuild@v3 + uses: github/codeql-action/autobuild@v4 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 + uses: github/codeql-action/analyze@v4 From 592d1b91af0357fa25527509e6c4e6ce24b9f9ba Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Thu, 30 Oct 2025 13:37:05 +0000 Subject: [PATCH 29/49] Updating github-config --- .github/workflows/push-buildpackage.yml | 2 +- scripts/.util/tools.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/push-buildpackage.yml b/.github/workflows/push-buildpackage.yml index f3405855..3f663c6b 100644 --- a/.github/workflows/push-buildpackage.yml +++ b/.github/workflows/push-buildpackage.yml @@ -112,7 +112,7 @@ jobs: password: ${{ env.GCR_PASSWORD }} registry: ${{ env.GCR_REGISTRY }} - - uses: buildpacks/github-actions/setup-tools@v5.9.5 + - uses: buildpacks/github-actions/setup-tools@v5.9.6 - name: Push to DockerHub if: ${{ steps.parse_configs.outputs.push_to_dockerhub == 'true' }} id: push diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index c8845b4d..fde299a8 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,6 +1,6 @@ { "createpackage": "v1.73.0", - "jam": "v2.15.0", + "jam": "v2.15.1", "libpaktools": "v0.3.0", "pack": "v0.38.2" } From 1715b462797c9ca91d487f75b9ae623f58f8cf4d Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Fri, 31 Oct 2025 13:36:34 +0000 Subject: [PATCH 30/49] Updating github-config --- .github/workflows/codeql-analysis.yml | 2 -- .github/workflows/lint.yml | 3 --- 2 files changed, 5 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 8729f8a8..c6ec4c44 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -1,8 +1,6 @@ name: "CodeQL" on: - push: - branches: [ main ] pull_request: branches: [ main ] schedule: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 31737ef6..d9c79474 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,9 +1,6 @@ name: Lint on: - push: - branches: - - main pull_request: branches: - main From d9d9c8105038de9cae80f74887a60555c7334fe9 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Mon, 17 Nov 2025 13:37:37 +0000 Subject: [PATCH 31/49] Updating github-config --- .github/workflows/update-dependencies-from-metadata.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/update-dependencies-from-metadata.yml b/.github/workflows/update-dependencies-from-metadata.yml index 8ee6586f..cd5d2080 100644 --- a/.github/workflows/update-dependencies-from-metadata.yml +++ b/.github/workflows/update-dependencies-from-metadata.yml @@ -28,7 +28,8 @@ jobs: - name: Setup Go uses: actions/setup-go@v6 with: - go-version-file: go.mod + # hashFiles returns empty string if file does not exist + go-version-file: ${{ hashFiles('dependency/retrieval/go.mod') != '' && 'dependency/retrieval/go.mod' || 'go.mod' }} - name: Run Retrieve id: retrieve From e337e267491530c9b42ca7c076751ac46288aa0a Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Tue, 25 Nov 2025 13:38:13 +0000 Subject: [PATCH 32/49] Updating github-config --- .github/workflows/update-go-mod-version.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/update-go-mod-version.yml b/.github/workflows/update-go-mod-version.yml index 44248a47..a41bb797 100644 --- a/.github/workflows/update-go-mod-version.yml +++ b/.github/workflows/update-go-mod-version.yml @@ -21,8 +21,9 @@ jobs: - name: Setup Go id: setup-go uses: actions/setup-go@v6 + # Fetching the latest stable Go version with: - go-version-file: go.mod + go-version: stable - name: Get current go toolchain version id: current-go-version uses: paketo-buildpacks/github-config/actions/update-go-mod-version@main From 3707904e958568c04fdde82f6dcb49a9dd3fcfe2 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Wed, 26 Nov 2025 13:38:23 +0000 Subject: [PATCH 33/49] Updating github-config --- .github/workflows/lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index d9c79474..ff71426e 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -19,7 +19,7 @@ jobs: go-version-file: go.mod - name: golangci-lint - uses: golangci/golangci-lint-action@v3 + uses: golangci/golangci-lint-action@v9 with: version: latest args: --timeout 3m0s From 185776146a493480016d2d390551ba7e5ce73614 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Fri, 28 Nov 2025 13:36:41 +0000 Subject: [PATCH 34/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index fde299a8..b1b5aaa5 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -2,5 +2,5 @@ "createpackage": "v1.73.0", "jam": "v2.15.1", "libpaktools": "v0.3.0", - "pack": "v0.38.2" + "pack": "v0.39.0" } From b4f2e9a98a226e8a4f575aae7b2c07b5b11800fa Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Wed, 10 Dec 2025 13:38:51 +0000 Subject: [PATCH 35/49] Updating github-config --- .github/workflows/approve-bot-pr.yml | 2 +- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/compile-dependency.yml | 4 +-- .github/workflows/create-draft-release.yml | 6 ++--- .github/workflows/lint-yaml.yml | 4 +-- .github/workflows/lint.yml | 2 +- .github/workflows/push-buildpackage.yml | 4 +-- .github/workflows/synchronize-labels.yml | 2 +- .github/workflows/test-pull-request.yml | 6 ++--- .../update-dependencies-from-metadata.yml | 26 +++++++++---------- .github/workflows/update-github-config.yml | 4 +-- .github/workflows/update-go-mod-version.yml | 2 +- scripts/.util/tools.sh | 2 ++ scripts/integration.sh | 8 +++++- 14 files changed, 41 insertions(+), 33 deletions(-) diff --git a/.github/workflows/approve-bot-pr.yml b/.github/workflows/approve-bot-pr.yml index d958d9a4..00e6345a 100644 --- a/.github/workflows/approve-bot-pr.yml +++ b/.github/workflows/approve-bot-pr.yml @@ -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@v5 + uses: actions/checkout@v6 - name: Approve if: steps.human-commits.outputs.human_commits == 'false' && steps.unverified-commits.outputs.unverified_commits == 'false' diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index c6ec4c44..8afce9c2 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -19,7 +19,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Initialize CodeQL uses: github/codeql-action/init@v4 diff --git a/.github/workflows/compile-dependency.yml b/.github/workflows/compile-dependency.yml index c9f208fd..8afaa836 100644 --- a/.github/workflows/compile-dependency.yml +++ b/.github/workflows/compile-dependency.yml @@ -42,7 +42,7 @@ jobs: steps: - name: Check out code - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Enable experimental features for Docker daemon and CLI run: | @@ -99,7 +99,7 @@ jobs: arch="${{ inputs.arch }}" - name: Upload compiled artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 if: ${{ inputs.shouldCompile == true || inputs.shouldCompile == 'true' }} with: name: '${{ inputs.uploadArtifactName }}' diff --git a/.github/workflows/create-draft-release.yml b/.github/workflows/create-draft-release.yml index 1c947a9a..75f63a75 100644 --- a/.github/workflows/create-draft-release.yml +++ b/.github/workflows/create-draft-release.yml @@ -22,7 +22,7 @@ jobs: builders: ${{ steps.builders.outputs.builders }} steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup Go uses: actions/setup-go@v6 with: @@ -47,7 +47,7 @@ jobs: fail-fast: false # don't cancel all test jobs when one fails steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup Go uses: actions/setup-go@v6 with: @@ -69,7 +69,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-tags: true diff --git a/.github/workflows/lint-yaml.yml b/.github/workflows/lint-yaml.yml index f4f032bc..8a7dab74 100644 --- a/.github/workflows/lint-yaml.yml +++ b/.github/workflows/lint-yaml.yml @@ -10,10 +10,10 @@ jobs: lintYaml: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Checkout github-config - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: repository: paketo-buildpacks/github-config path: github-config diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index ff71426e..469c029d 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup Go uses: actions/setup-go@v6 diff --git a/.github/workflows/push-buildpackage.yml b/.github/workflows/push-buildpackage.yml index 3f663c6b..656eabc6 100644 --- a/.github/workflows/push-buildpackage.yml +++ b/.github/workflows/push-buildpackage.yml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Parse Event id: event @@ -112,7 +112,7 @@ jobs: password: ${{ env.GCR_PASSWORD }} registry: ${{ env.GCR_REGISTRY }} - - uses: buildpacks/github-actions/setup-tools@v5.9.6 + - uses: buildpacks/github-actions/setup-tools@v5.9.7 - name: Push to DockerHub if: ${{ steps.parse_configs.outputs.push_to_dockerhub == 'true' }} id: push diff --git a/.github/workflows/synchronize-labels.yml b/.github/workflows/synchronize-labels.yml index fc0f5163..09db8880 100644 --- a/.github/workflows/synchronize-labels.yml +++ b/.github/workflows/synchronize-labels.yml @@ -12,7 +12,7 @@ jobs: runs-on: - ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: micnncim/action-label-syncer@v1 env: GITHUB_TOKEN: ${{ github.token }} diff --git a/.github/workflows/test-pull-request.yml b/.github/workflows/test-pull-request.yml index d86d4dd7..c110c3ba 100644 --- a/.github/workflows/test-pull-request.yml +++ b/.github/workflows/test-pull-request.yml @@ -18,7 +18,7 @@ jobs: builders: ${{ steps.builders.outputs.builders }} steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup Go uses: actions/setup-go@v6 @@ -49,7 +49,7 @@ jobs: fail-fast: false # don't cancel all test jobs when one fails steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup Go uses: actions/setup-go@v6 @@ -82,7 +82,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Upload Artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: event-payload path: ${{ github.event_path }} diff --git a/.github/workflows/update-dependencies-from-metadata.yml b/.github/workflows/update-dependencies-from-metadata.yml index cd5d2080..e5a706ff 100644 --- a/.github/workflows/update-dependencies-from-metadata.yml +++ b/.github/workflows/update-dependencies-from-metadata.yml @@ -23,7 +23,7 @@ jobs: compilation-length: ${{ steps.retrieve.outputs.compilation-length }} steps: - name: Check out code - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup Go uses: actions/setup-go@v6 @@ -65,13 +65,13 @@ jobs: echo "compilation-length=$complength" >> "$GITHUB_OUTPUT" - name: Upload `${{ steps.retrieve.outputs.metadata-filepath }}` - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: metadata.json path: ${{ steps.retrieve.outputs.metadata-filepath }} - name: Upload `${{ steps.retrieve.outputs.from-source-metadata-filepath }}` - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: from-source-metadata.json path: ${{ steps.retrieve.outputs.from-source-metadata-filepath }} @@ -87,7 +87,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Has Compilation Action? id: compile-check @@ -122,7 +122,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Make Temporary Artifact Directory id: make-outputdir @@ -192,10 +192,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Download artifact files - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v6 with: name: "${{ needs.retrieve.outputs.id }}-${{ matrix.includes.version }}-${{ matrix.includes.os != '' && matrix.includes.os || 'linux' }}-${{ matrix.includes.arch != '' && matrix.includes.arch || 'amd64' }}-${{ matrix.includes.target }}" @@ -210,7 +210,7 @@ jobs: echo "checksum-file=$(basename ./*.tgz.checksum)" >> "$GITHUB_OUTPUT" - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v4 + uses: aws-actions/configure-aws-credentials@v5 with: aws-access-key-id: ${{ secrets.AWS_S3_DEPENDENCIES_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_S3_DEPENDENCIES_SECRET_ACCESS_KEY }} @@ -229,7 +229,7 @@ jobs: run: echo "checksum=$(cat ${{ steps.get-file-names.outputs.checksum-file }})" >> "$GITHUB_OUTPUT" - name: Download metadata.json - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v6 with: name: metadata.json @@ -264,7 +264,7 @@ jobs: arch: ${{ matrix.includes.arch }} - name: Upload modified metadata - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: ${{ steps.dependency-metadata.outputs.file }} path: ${{ steps.dependency-metadata.outputs.file }} @@ -285,7 +285,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Checkout Branch uses: paketo-buildpacks/github-config/actions/pull-request/checkout-branch@main @@ -299,7 +299,7 @@ jobs: # Metadata file for the non-compiled dependencies, if there are any - name: Download metadata.json file - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v6 with: path: "${{ steps.make-outputdir.outputs.outputdir }}/metadata-files" pattern: "from-source-metadata.json" @@ -309,7 +309,7 @@ jobs: # Download each metadata file, and combine them into one - name: Download individual metadata-file.json file(s) if: ${{ needs.update-metadata.result == 'success' }} - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v6 with: path: "${{ steps.make-outputdir.outputs.outputdir }}/metadata-files" pattern: "*metadata-file.json" diff --git a/.github/workflows/update-github-config.yml b/.github/workflows/update-github-config.yml index d3f8b49b..eab3dc14 100644 --- a/.github/workflows/update-github-config.yml +++ b/.github/workflows/update-github-config.yml @@ -14,12 +14,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }} - name: Checkout github-config - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: repository: paketo-buildpacks/github-config path: github-config diff --git a/.github/workflows/update-go-mod-version.yml b/.github/workflows/update-go-mod-version.yml index a41bb797..5691b78c 100644 --- a/.github/workflows/update-go-mod-version.yml +++ b/.github/workflows/update-go-mod-version.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Checkout PR Branch uses: paketo-buildpacks/github-config/actions/pull-request/checkout-branch@main with: diff --git a/scripts/.util/tools.sh b/scripts/.util/tools.sh index 226012ef..853e8186 100644 --- a/scripts/.util/tools.sh +++ b/scripts/.util/tools.sh @@ -33,6 +33,8 @@ function util::tools::arch() { echo "" elif [[ "${1:-}" == "--format-amd64-x86_64" ]]; then echo "x86_64" + elif [[ "${1:-}" == "--format-amd64-x86-64" ]]; then + echo "x86-64" else echo "amd64" fi diff --git a/scripts/integration.sh b/scripts/integration.sh index 5de24a61..029e2d91 100755 --- a/scripts/integration.sh +++ b/scripts/integration.sh @@ -134,11 +134,17 @@ function builder_images::pull() { pack inspect-builder "${builder}" --output json \ | jq -r '.remote_info.run_images[0].name' )" - lifecycle_image="index.docker.io/buildpacksio/lifecycle:$( + + os=$(util::tools::os) + arch=$(util::tools::arch --format-amd64-x86-64) + + lifecycle_version="$( pack inspect-builder "${builder}" --output json \ | jq -r '.remote_info.lifecycle.version' )" + lifecycle_image="index.docker.io/buildpacksio/lifecycle:${lifecycle_version}-${os}-${arch}" + util::print::title "Pulling run image..." docker pull "${run_image}" From a3559532e3a01aab74651582e6f3e69edb7bcffc Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Fri, 12 Dec 2025 13:38:24 +0000 Subject: [PATCH 36/49] Updating github-config --- .github/workflows/create-draft-release.yml | 1 + .github/workflows/test-pull-request.yml | 13 +++++++++++++ scripts/.util/tools.json | 2 +- scripts/.util/tools.sh | 3 +-- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/create-draft-release.yml b/.github/workflows/create-draft-release.yml index 75f63a75..d2118810 100644 --- a/.github/workflows/create-draft-release.yml +++ b/.github/workflows/create-draft-release.yml @@ -56,6 +56,7 @@ jobs: run: ./scripts/integration.sh --builder ${{ matrix.builder }} --token ${{ github.token }} env: TMPDIR: "${{ runner.temp }}" + GIT_TOKEN: ${{ github.token }} release: name: Release diff --git a/.github/workflows/test-pull-request.yml b/.github/workflows/test-pull-request.yml index c110c3ba..daa60718 100644 --- a/.github/workflows/test-pull-request.yml +++ b/.github/workflows/test-pull-request.yml @@ -51,6 +51,18 @@ jobs: - name: Checkout uses: actions/checkout@v6 + - name: Free Disk Space + if: vars.RECLAIM_DISK_SPACE == 'true' + uses: paketo-buildpacks/github-config/actions/pull-request/reclaim-disk-space@main + with: + tool-cache: false + android: true + dotnet: true + haskell: true + large-packages: false + docker-images: true + swap-storage: true + - name: Setup Go uses: actions/setup-go@v6 with: @@ -60,6 +72,7 @@ jobs: run: ./scripts/integration.sh --builder ${{ matrix.builder }} --token ${{ github.token }} env: TMPDIR: "${{ runner.temp }}" + GIT_TOKEN: ${{ github.token }} roundup: name: Integration Tests diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index b1b5aaa5..d14e8ce4 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -2,5 +2,5 @@ "createpackage": "v1.73.0", "jam": "v2.15.1", "libpaktools": "v0.3.0", - "pack": "v0.39.0" + "pack": "v0.39.1" } diff --git a/scripts/.util/tools.sh b/scripts/.util/tools.sh index 853e8186..fd98e0df 100644 --- a/scripts/.util/tools.sh +++ b/scripts/.util/tools.sh @@ -158,7 +158,7 @@ function util::tools::pack::install() { util::print::title "Installing pack ${version}" - os=$(util::tools::os macos) + os=$(util::tools::os) arch=$(util::tools::arch --blank-amd64) curl "https://github.com/buildpacks/pack/releases/download/${version}/pack-${version}-${os}${arch:+-$arch}.tgz" \ @@ -169,7 +169,6 @@ function util::tools::pack::install() { if [[ "${pack_config_enable_experimental}" == "true" ]]; then "${dir}"/pack config experimental true fi - else util::print::info "Using pack $("${dir}"/pack version)" fi From 137468c1b9c02b9e4552a5bc870381f5d94e75d3 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Sat, 13 Dec 2025 13:34:41 +0000 Subject: [PATCH 37/49] Updating github-config --- .github/workflows/compile-dependency.yml | 2 +- .github/workflows/test-pull-request.yml | 2 +- .github/workflows/update-dependencies-from-metadata.yml | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/compile-dependency.yml b/.github/workflows/compile-dependency.yml index 8afaa836..3c102e65 100644 --- a/.github/workflows/compile-dependency.yml +++ b/.github/workflows/compile-dependency.yml @@ -99,7 +99,7 @@ jobs: arch="${{ inputs.arch }}" - name: Upload compiled artifact - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 if: ${{ inputs.shouldCompile == true || inputs.shouldCompile == 'true' }} with: name: '${{ inputs.uploadArtifactName }}' diff --git a/.github/workflows/test-pull-request.yml b/.github/workflows/test-pull-request.yml index daa60718..61c6010a 100644 --- a/.github/workflows/test-pull-request.yml +++ b/.github/workflows/test-pull-request.yml @@ -95,7 +95,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Upload Artifact - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: event-payload path: ${{ github.event_path }} diff --git a/.github/workflows/update-dependencies-from-metadata.yml b/.github/workflows/update-dependencies-from-metadata.yml index e5a706ff..1202a2e2 100644 --- a/.github/workflows/update-dependencies-from-metadata.yml +++ b/.github/workflows/update-dependencies-from-metadata.yml @@ -65,13 +65,13 @@ jobs: echo "compilation-length=$complength" >> "$GITHUB_OUTPUT" - name: Upload `${{ steps.retrieve.outputs.metadata-filepath }}` - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: metadata.json path: ${{ steps.retrieve.outputs.metadata-filepath }} - name: Upload `${{ steps.retrieve.outputs.from-source-metadata-filepath }}` - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: from-source-metadata.json path: ${{ steps.retrieve.outputs.from-source-metadata-filepath }} @@ -264,7 +264,7 @@ jobs: arch: ${{ matrix.includes.arch }} - name: Upload modified metadata - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: ${{ steps.dependency-metadata.outputs.file }} path: ${{ steps.dependency-metadata.outputs.file }} From 8acd106a23a60820a69add14bd5b095ed3d9a4f2 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Mon, 15 Dec 2025 13:39:35 +0000 Subject: [PATCH 38/49] Updating github-config --- scripts/integration.sh | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/scripts/integration.sh b/scripts/integration.sh index 029e2d91..3257ad9f 100755 --- a/scripts/integration.sh +++ b/scripts/integration.sh @@ -135,16 +135,11 @@ function builder_images::pull() { | jq -r '.remote_info.run_images[0].name' )" - os=$(util::tools::os) - arch=$(util::tools::arch --format-amd64-x86-64) - - lifecycle_version="$( + lifecycle_image="index.docker.io/buildpacksio/lifecycle:$( pack inspect-builder "${builder}" --output json \ | jq -r '.remote_info.lifecycle.version' )" - lifecycle_image="index.docker.io/buildpacksio/lifecycle:${lifecycle_version}-${os}-${arch}" - util::print::title "Pulling run image..." docker pull "${run_image}" From 3fca5a3d3e7327cc4327eac921a8ece1fccf8788 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Tue, 16 Dec 2025 13:39:08 +0000 Subject: [PATCH 39/49] Updating github-config --- .github/dependabot.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index bf99f0e3..1f5b2152 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -16,8 +16,3 @@ updates: update-types: - "minor" - "patch" - exclude-patterns: - - "github.com/anchore/stereoscope" - - "github.com/testcontainers/testcontainers-go" - - "github.com/docker/docker" - - "github.com/containerd/containerd" From d1e693717b6bf8ad89b3c11bb12aa94efbddbf81 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Sat, 20 Dec 2025 13:34:45 +0000 Subject: [PATCH 40/49] Updating github-config --- .github/workflows/create-draft-release.yml | 11 +++++++++++ .github/workflows/push-buildpackage.yml | 2 +- .../workflows/update-dependencies-from-metadata.yml | 8 ++++---- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/.github/workflows/create-draft-release.yml b/.github/workflows/create-draft-release.yml index d2118810..a020db2f 100644 --- a/.github/workflows/create-draft-release.yml +++ b/.github/workflows/create-draft-release.yml @@ -52,6 +52,17 @@ jobs: uses: actions/setup-go@v6 with: go-version-file: go.mod + - name: Free Disk Space + if: vars.RECLAIM_DISK_SPACE == 'true' + uses: paketo-buildpacks/github-config/actions/pull-request/reclaim-disk-space@main + with: + tool-cache: false + android: true + dotnet: true + haskell: true + large-packages: false + docker-images: true + swap-storage: true - name: Run Integration Tests run: ./scripts/integration.sh --builder ${{ matrix.builder }} --token ${{ github.token }} env: diff --git a/.github/workflows/push-buildpackage.yml b/.github/workflows/push-buildpackage.yml index 656eabc6..7d21fb4b 100644 --- a/.github/workflows/push-buildpackage.yml +++ b/.github/workflows/push-buildpackage.yml @@ -112,7 +112,7 @@ jobs: password: ${{ env.GCR_PASSWORD }} registry: ${{ env.GCR_REGISTRY }} - - uses: buildpacks/github-actions/setup-tools@v5.9.7 + - uses: buildpacks/github-actions/setup-tools@v5.10.0 - name: Push to DockerHub if: ${{ steps.parse_configs.outputs.push_to_dockerhub == 'true' }} id: push diff --git a/.github/workflows/update-dependencies-from-metadata.yml b/.github/workflows/update-dependencies-from-metadata.yml index 1202a2e2..2d4dcba5 100644 --- a/.github/workflows/update-dependencies-from-metadata.yml +++ b/.github/workflows/update-dependencies-from-metadata.yml @@ -195,7 +195,7 @@ jobs: uses: actions/checkout@v6 - name: Download artifact files - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v7 with: name: "${{ needs.retrieve.outputs.id }}-${{ matrix.includes.version }}-${{ matrix.includes.os != '' && matrix.includes.os || 'linux' }}-${{ matrix.includes.arch != '' && matrix.includes.arch || 'amd64' }}-${{ matrix.includes.target }}" @@ -229,7 +229,7 @@ jobs: run: echo "checksum=$(cat ${{ steps.get-file-names.outputs.checksum-file }})" >> "$GITHUB_OUTPUT" - name: Download metadata.json - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v7 with: name: metadata.json @@ -299,7 +299,7 @@ jobs: # Metadata file for the non-compiled dependencies, if there are any - name: Download metadata.json file - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v7 with: path: "${{ steps.make-outputdir.outputs.outputdir }}/metadata-files" pattern: "from-source-metadata.json" @@ -309,7 +309,7 @@ jobs: # Download each metadata file, and combine them into one - name: Download individual metadata-file.json file(s) if: ${{ needs.update-metadata.result == 'success' }} - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v7 with: path: "${{ steps.make-outputdir.outputs.outputdir }}/metadata-files" pattern: "*metadata-file.json" From fea4cfcfd3a2687a8708daa2e2e160774548d4ac Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Fri, 26 Dec 2025 13:37:56 +0000 Subject: [PATCH 41/49] Updating github-config --- scripts/.util/tools.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.sh b/scripts/.util/tools.sh index fd98e0df..2d0c9a23 100644 --- a/scripts/.util/tools.sh +++ b/scripts/.util/tools.sh @@ -158,7 +158,7 @@ function util::tools::pack::install() { util::print::title "Installing pack ${version}" - os=$(util::tools::os) + os=$(util::tools::os macos) arch=$(util::tools::arch --blank-amd64) curl "https://github.com/buildpacks/pack/releases/download/${version}/pack-${version}-${os}${arch:+-$arch}.tgz" \ From 3cc3cd6fec5581543eeeabacd98f9f1e47c2cb5b Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Sun, 11 Jan 2026 13:36:32 +0000 Subject: [PATCH 42/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index d14e8ce4..dd4c8ec5 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,6 +1,6 @@ { "createpackage": "v1.73.0", - "jam": "v2.15.1", + "jam": "v2.15.2", "libpaktools": "v0.3.0", "pack": "v0.39.1" } From 4e5685d155cd1b3e70fdc96ea3ecf3379323fe4c Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Tue, 13 Jan 2026 13:39:46 +0000 Subject: [PATCH 43/49] Updating github-config --- .github/workflows/update-dependencies-from-metadata.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/update-dependencies-from-metadata.yml b/.github/workflows/update-dependencies-from-metadata.yml index 2d4dcba5..1202a2e2 100644 --- a/.github/workflows/update-dependencies-from-metadata.yml +++ b/.github/workflows/update-dependencies-from-metadata.yml @@ -195,7 +195,7 @@ jobs: uses: actions/checkout@v6 - name: Download artifact files - uses: actions/download-artifact@v7 + uses: actions/download-artifact@v6 with: name: "${{ needs.retrieve.outputs.id }}-${{ matrix.includes.version }}-${{ matrix.includes.os != '' && matrix.includes.os || 'linux' }}-${{ matrix.includes.arch != '' && matrix.includes.arch || 'amd64' }}-${{ matrix.includes.target }}" @@ -229,7 +229,7 @@ jobs: run: echo "checksum=$(cat ${{ steps.get-file-names.outputs.checksum-file }})" >> "$GITHUB_OUTPUT" - name: Download metadata.json - uses: actions/download-artifact@v7 + uses: actions/download-artifact@v6 with: name: metadata.json @@ -299,7 +299,7 @@ jobs: # Metadata file for the non-compiled dependencies, if there are any - name: Download metadata.json file - uses: actions/download-artifact@v7 + uses: actions/download-artifact@v6 with: path: "${{ steps.make-outputdir.outputs.outputdir }}/metadata-files" pattern: "from-source-metadata.json" @@ -309,7 +309,7 @@ jobs: # Download each metadata file, and combine them into one - name: Download individual metadata-file.json file(s) if: ${{ needs.update-metadata.result == 'success' }} - uses: actions/download-artifact@v7 + uses: actions/download-artifact@v6 with: path: "${{ steps.make-outputdir.outputs.outputdir }}/metadata-files" pattern: "*metadata-file.json" From 2d9c0c3dfc06cc0997eb1934b591e629ef1fa382 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Tue, 20 Jan 2026 13:40:46 +0000 Subject: [PATCH 44/49] Updating github-config --- .github/workflows/push-buildpackage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push-buildpackage.yml b/.github/workflows/push-buildpackage.yml index 7d21fb4b..9e3e71bc 100644 --- a/.github/workflows/push-buildpackage.yml +++ b/.github/workflows/push-buildpackage.yml @@ -112,7 +112,7 @@ jobs: password: ${{ env.GCR_PASSWORD }} registry: ${{ env.GCR_REGISTRY }} - - uses: buildpacks/github-actions/setup-tools@v5.10.0 + - uses: buildpacks/github-actions/setup-tools@v5.10.1 - name: Push to DockerHub if: ${{ steps.parse_configs.outputs.push_to_dockerhub == 'true' }} id: push From 5a43381c5eebcc7f98a5f11a8fd9e3271a588b1c Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Wed, 4 Feb 2026 13:48:02 +0000 Subject: [PATCH 45/49] Updating github-config --- scripts/.util/tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index dd4c8ec5..6b7f14da 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -2,5 +2,5 @@ "createpackage": "v1.73.0", "jam": "v2.15.2", "libpaktools": "v0.3.0", - "pack": "v0.39.1" + "pack": "v0.40.0" } From 6f0df95a1e5a96cfa0a986f42c20e52ed45f8539 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Sat, 7 Feb 2026 13:40:11 +0000 Subject: [PATCH 46/49] Updating github-config --- .github/workflows/push-buildpackage.yml | 2 +- .github/workflows/update-dependencies-from-metadata.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/push-buildpackage.yml b/.github/workflows/push-buildpackage.yml index 9e3e71bc..3c144ba1 100644 --- a/.github/workflows/push-buildpackage.yml +++ b/.github/workflows/push-buildpackage.yml @@ -112,7 +112,7 @@ jobs: password: ${{ env.GCR_PASSWORD }} registry: ${{ env.GCR_REGISTRY }} - - uses: buildpacks/github-actions/setup-tools@v5.10.1 + - uses: buildpacks/github-actions/setup-tools@v5.11.0 - name: Push to DockerHub if: ${{ steps.parse_configs.outputs.push_to_dockerhub == 'true' }} id: push diff --git a/.github/workflows/update-dependencies-from-metadata.yml b/.github/workflows/update-dependencies-from-metadata.yml index 1202a2e2..a4ab99a6 100644 --- a/.github/workflows/update-dependencies-from-metadata.yml +++ b/.github/workflows/update-dependencies-from-metadata.yml @@ -210,7 +210,7 @@ jobs: echo "checksum-file=$(basename ./*.tgz.checksum)" >> "$GITHUB_OUTPUT" - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v5 + uses: aws-actions/configure-aws-credentials@v6 with: aws-access-key-id: ${{ secrets.AWS_S3_DEPENDENCIES_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_S3_DEPENDENCIES_SECRET_ACCESS_KEY }} From 0b48536e4ecf3d062b1c7ce6b017b13bddf7c47c Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Sat, 14 Feb 2026 13:40:11 +0000 Subject: [PATCH 47/49] Updating github-config --- .github/workflows/test-pull-request.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/test-pull-request.yml b/.github/workflows/test-pull-request.yml index 61c6010a..4fd76c6a 100644 --- a/.github/workflows/test-pull-request.yml +++ b/.github/workflows/test-pull-request.yml @@ -68,6 +68,12 @@ jobs: with: go-version-file: go.mod + # Causes errors with integration tests + - name: Disable containerd snapshotter + run: | + echo '{"features": {"containerd-snapshotter": false}}' | sudo tee /etc/docker/daemon.json + sudo systemctl restart docker + - name: Run Integration Tests run: ./scripts/integration.sh --builder ${{ matrix.builder }} --token ${{ github.token }} env: From 3121c5e0581d2843e701700853eaa016d243e333 Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Sun, 15 Feb 2026 13:40:26 +0000 Subject: [PATCH 48/49] Updating github-config --- .github/workflows/create-draft-release.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/create-draft-release.yml b/.github/workflows/create-draft-release.yml index a020db2f..a7d74a3a 100644 --- a/.github/workflows/create-draft-release.yml +++ b/.github/workflows/create-draft-release.yml @@ -63,6 +63,13 @@ jobs: large-packages: false docker-images: true swap-storage: true + + # Causes errors with integration tests + - name: Disable containerd snapshotter + run: | + echo '{"features": {"containerd-snapshotter": false}}' | sudo tee /etc/docker/daemon.json + sudo systemctl restart docker + - name: Run Integration Tests run: ./scripts/integration.sh --builder ${{ matrix.builder }} --token ${{ github.token }} env: From e7433bf077fcdd53e3a7fea4c0f03a73ac785bce Mon Sep 17 00:00:00 2001 From: paketo-bot Date: Mon, 16 Feb 2026 13:49:39 +0000 Subject: [PATCH 49/49] Updating github-config --- .github/.patch_files | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/.github/.patch_files b/.github/.patch_files index 06ce1709..79809195 100644 --- a/.github/.patch_files +++ b/.github/.patch_files @@ -1,19 +1,22 @@ -.github/.patch_files -.github/.syncignore -.github/CODEOWNERS -.github/dependabot.yml -.github/labels.yml .github/workflows/approve-bot-pr.yml .github/workflows/codeql-analysis.yml -.github/workflows/go-get-update.yml +.github/workflows/compile-dependency.yml +.github/workflows/create-draft-release.yml .github/workflows/label-pr.yml .github/workflows/lint-yaml.yml .github/workflows/lint.yml +.github/workflows/publish-releases.yml +.github/workflows/push-buildpackage.yml .github/workflows/synchronize-labels.yml .github/workflows/test-pull-request.yml -.github/workflows/update-dependencies.yml .github/workflows/update-dependencies-from-metadata.yml .github/workflows/update-github-config.yml +.github/workflows/update-go-mod-version.yml +.github/.patch_files +.github/.syncignore +.github/CODEOWNERS +.github/dependabot.yml +.github/labels.yml .gitignore LICENSE NOTICE @@ -21,9 +24,11 @@ README.md go.mod go.sum scripts/.util/builders.sh -scripts/.util/git.sh scripts/.util/print.sh scripts/.util/tools.json scripts/.util/tools.sh +scripts/build.sh scripts/integration.sh +scripts/package.sh +scripts/publish.sh scripts/unit.sh