diff --git a/.github/.patch_files b/.github/.patch_files index 06ce170..7980919 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 diff --git a/.github/dependabot.yml b/.github/dependabot.yml index bf99f0e..dbe82d2 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -17,7 +17,7 @@ updates: - "minor" - "patch" exclude-patterns: - - "github.com/anchore/stereoscope" - - "github.com/testcontainers/testcontainers-go" - - "github.com/docker/docker" - - "github.com/containerd/containerd" + # go-diskfs 1.8 broke API wrt 1.7 which is in use by syft + # at the time of writing + # keep until https://github.com/anchore/syft/pull/4719 is merged or issue resolved. + - "github.com/diskfs/go-diskfs" diff --git a/.github/workflows/approve-bot-pr.yml b/.github/workflows/approve-bot-pr.yml index 3e3df20..00e6345 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@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 f916360..8afce9c 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: @@ -21,15 +19,15 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - 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 diff --git a/.github/workflows/compile-dependency.yml b/.github/workflows/compile-dependency.yml index 17e00fd..777209c 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@v6 - name: Enable experimental features for Docker daemon and CLI run: | @@ -52,10 +52,10 @@ jobs: echo '{"experimental": "enabled"}' | sudo tee ~/.docker/config.json - name: Set up QEMU - uses: docker/setup-qemu-action@v3 + uses: docker/setup-qemu-action@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Setup before compilation id: compile-setup @@ -99,7 +99,7 @@ jobs: arch="${{ inputs.arch }}" - name: Upload compiled artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 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 9f94088..a7d74a3 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@v6 - name: Setup Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: go.mod - name: Run Unit Tests @@ -47,15 +47,34 @@ jobs: fail-fast: false # don't cancel all test jobs when one fails steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setup Go - uses: actions/setup-go@v5 + 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 + + # 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: TMPDIR: "${{ runner.temp }}" + GIT_TOKEN: ${{ github.token }} release: name: Release @@ -63,18 +82,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@v6 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 930add1..69d6067 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@v6 - name: Checkout github-config - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: paketo-buildpacks/github-config path: github-config @@ -21,7 +21,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: 3.8 + python-version: 3.14 - name: Install yamllint run: pip install yamllint diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 5db0a35..469c029 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 @@ -14,15 +11,15 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setup Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: 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 diff --git a/.github/workflows/push-buildpackage.yml b/.github/workflows/push-buildpackage.yml index 0dda5c8..8a20af2 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@v6 - name: Parse Event id: event @@ -98,21 +98,21 @@ jobs: fi - name: Docker login docker.io - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ env.DOCKERHUB_USERNAME }} password: ${{ env.DOCKERHUB_PASSWORD }} registry: ${{ env.DOCKERHUB_REGISTRY }} - name: Docker login gcr.io - uses: docker/login-action@v3 + uses: docker/login-action@v4 if: ${{ steps.parse_configs.outputs.push_to_gcr == 'true' }} with: username: ${{ env.GCR_USERNAME }} password: ${{ env.GCR_PASSWORD }} registry: ${{ env.GCR_REGISTRY }} - - uses: buildpacks/github-actions/setup-tools@v5.5.4 + - uses: buildpacks/github-actions/setup-tools@v5.12.1 - 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 82f97f9..09db888 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@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 383024a..4fd76c6 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@v6 - name: Setup Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: go.mod @@ -49,17 +49,36 @@ jobs: fail-fast: false # don't cancel all test jobs when one fails steps: - name: Checkout - uses: actions/checkout@v4 + 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@v5 + uses: actions/setup-go@v6 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: TMPDIR: "${{ runner.temp }}" + GIT_TOKEN: ${{ github.token }} roundup: name: Integration Tests @@ -82,7 +101,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Upload Artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: event-payload path: ${{ github.event_path }} diff --git a/.github/workflows/update-github-config.yml b/.github/workflows/update-github-config.yml index a24481e..eab3dc1 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@v6 with: token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }} - name: Checkout github-config - uses: actions/checkout@v4 + 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 aff9d1e..5691b78 100644 --- a/.github/workflows/update-go-mod-version.yml +++ b/.github/workflows/update-go-mod-version.yml @@ -13,16 +13,17 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - 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 + # 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 diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index c8845b4..1292689 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,6 +1,6 @@ { "createpackage": "v1.73.0", - "jam": "v2.15.0", - "libpaktools": "v0.3.0", - "pack": "v0.38.2" + "jam": "v2.17.3", + "libpaktools": "v0.6.0", + "pack": "v0.40.4" } diff --git a/scripts/.util/tools.sh b/scripts/.util/tools.sh index 56c0cf3..2d0c9a2 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 @@ -167,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 @@ -244,7 +245,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 diff --git a/scripts/build.sh b/scripts/build.sh index 11ab80b..63d2236 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -45,7 +45,7 @@ function main() { run::build cmd::build - ## For backwards compatibility with amd64 wokflows + ## For backwards compatibility with amd64 workflows if [[ ${#targets[@]} -eq 1 && "${targets[0]}" == "linux/amd64" ]]; then cp -r "${BUILDPACKDIR}/linux/amd64/bin/" "${BUILDPACKDIR}/" fi diff --git a/scripts/integration.sh b/scripts/integration.sh index 5de24a6..3257ad9 100755 --- a/scripts/integration.sh +++ b/scripts/integration.sh @@ -134,6 +134,7 @@ 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:$( pack inspect-builder "${builder}" --output json \ | jq -r '.remote_info.lifecycle.version' diff --git a/scripts/publish.sh b/scripts/publish.sh index 4c2afbc..6668542 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 ;;