diff --git a/.github/workflows/create-draft-release.yml b/.github/workflows/create-draft-release.yml index 8474cab..acc723e 100644 --- a/.github/workflows/create-draft-release.yml +++ b/.github/workflows/create-draft-release.yml @@ -66,16 +66,19 @@ jobs: uses: actions/setup-go@v3 with: go-version: 'stable' + - name: Checkout uses: actions/checkout@v3 with: fetch-tags: true + - name: Reset Draft Release id: reset uses: paketo-buildpacks/github-config/actions/release/reset-draft@main with: repo: ${{ github.repository }} token: ${{ github.token }} + - name: Calculate Semver Tag if: github.event.inputs.version == '' id: semver @@ -84,6 +87,7 @@ jobs: repo: ${{ github.repository }} token: ${{ github.token }} ref-name: ${{ github.ref_name }} + - name: Set Release Tag id: tag run: | @@ -92,14 +96,28 @@ jobs: tag="${{ steps.semver.outputs.tag }}" fi echo "tag=${tag}" >> "$GITHUB_OUTPUT" + - name: Package run: ./scripts/package.sh --version "${{ steps.tag.outputs.tag }}" + + - name: Get buildpack type + id: get_buildpack_type + run: | + + if [ -f "extension.toml" ]; then + echo "buildpack_type=extension" >> "$GITHUB_OUTPUT" + else + echo "buildpack_type=buildpack" >> "$GITHUB_OUTPUT" + fi + - name: Create Release Notes id: create-release-notes uses: paketo-buildpacks/github-config/actions/release/notes@main with: repo: ${{ github.repository }} token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }} + buildpack_type: ${{ steps.get_buildpack_type.outputs.buildpack_type }} + - name: Create Release uses: paketo-buildpacks/github-config/actions/release/create@main with: diff --git a/.github/workflows/push-buildpackage.yml b/.github/workflows/push-buildpackage.yml index f96478e..390ce27 100644 --- a/.github/workflows/push-buildpackage.yml +++ b/.github/workflows/push-buildpackage.yml @@ -4,6 +4,8 @@ on: release: types: - published +env: + REGISTRIES_FILENAME: "registries.json" jobs: push: @@ -11,6 +13,9 @@ jobs: runs-on: ubuntu-22.04 steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Parse Event id: event run: | @@ -30,6 +35,26 @@ jobs: output: "/github/workspace/buildpackage.cnb" token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }} + - name: Parse Configs + id: parse_configs + run: | + registries_filename="${{ env.REGISTRIES_FILENAME }}" + + push_to_dockerhub=true + push_to_gcr=true + + if [[ -f $registries_filename ]]; then + if jq 'has("dockerhub")' $registries_filename > /dev/null; then + push_to_dockerhub=$(jq '.dockerhub' $registries_filename) + fi + if jq 'has("GCR")' $registries_filename > /dev/null; then + push_to_gcr=$(jq '.GCR' $registries_filename) + fi + fi + + echo "push_to_dockerhub=${push_to_dockerhub}" >> "$GITHUB_OUTPUT" + echo "push_to_gcr=${push_to_gcr}" >> "$GITHUB_OUTPUT" + - name: Validate version run: | buidpackTomlVersion=$(sudo skopeo inspect "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" | jq -r '.Labels."io.buildpacks.buildpackage.metadata" | fromjson | .version') @@ -40,6 +65,7 @@ jobs: 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 }} run: | @@ -50,6 +76,7 @@ jobs: sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://gcr.io/${{ github.repository }}:latest" - name: Push to DockerHub + if: ${{ steps.parse_configs.outputs.push_to_dockerhub == 'true' }} id: push env: DOCKERHUB_USERNAME: ${{ secrets.PAKETO_BUILDPACKS_DOCKERHUB_USERNAME }} diff --git a/.github/workflows/test-pull-request.yml b/.github/workflows/test-pull-request.yml index 6574ff7..cd25980 100644 --- a/.github/workflows/test-pull-request.yml +++ b/.github/workflows/test-pull-request.yml @@ -26,6 +26,8 @@ jobs: uses: actions/checkout@v3 - name: Run Unit Tests + env: + GO_TEST_PARAMS: -count=5 run: ./scripts/unit.sh - name: Get builders from integration.json @@ -80,7 +82,7 @@ jobs: runs-on: ubuntu-22.04 steps: - name: Upload Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: event-payload path: ${{ github.event_path }} diff --git a/.github/workflows/update-go-mod-version.yml b/.github/workflows/update-go-mod-version.yml index 2cc949c..b68db8a 100644 --- a/.github/workflows/update-go-mod-version.yml +++ b/.github/workflows/update-go-mod-version.yml @@ -27,7 +27,7 @@ jobs: id: current-go-version uses: paketo-buildpacks/github-config/actions/update-go-mod-version@main with: - toolchain-version: ${{ steps.setup-go.outputs.go-version }} + go-version: ${{ steps.setup-go.outputs.go-version }} - name: Go mod tidy run: | #!/usr/bin/env bash @@ -54,7 +54,7 @@ jobs: id: commit uses: paketo-buildpacks/github-config/actions/pull-request/create-commit@main with: - message: "Updates go mod toolchain version to ${{ steps.setup-go.outputs.go-version }}" + message: "Updates go mod version to ${{ steps.setup-go.outputs.go-version }}" pathspec: "." keyid: ${{ secrets.PAKETO_BOT_GPG_SIGNING_KEY_ID }} key: ${{ secrets.PAKETO_BOT_GPG_SIGNING_KEY }} @@ -70,7 +70,7 @@ jobs: uses: paketo-buildpacks/github-config/actions/pull-request/open@main with: token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }} - title: "Updates go mod toolchain version to ${{ steps.setup-go.outputs.go-version }}" + title: "Updates go mod version to ${{ steps.setup-go.outputs.go-version }}" branch: automation/go-mod-update/update-main failure: diff --git a/scripts/.util/tools.json b/scripts/.util/tools.json index e2e977d..5fd7d99 100644 --- a/scripts/.util/tools.json +++ b/scripts/.util/tools.json @@ -1,5 +1,5 @@ { - "createpackage": "v1.70.0", - "jam": "v2.8.0", - "pack": "v0.34.2" + "createpackage": "v1.72.1", + "jam": "v2.10.1", + "pack": "v0.36.1" } diff --git a/scripts/unit.sh b/scripts/unit.sh index 8e193c7..dd130bf 100755 --- a/scripts/unit.sh +++ b/scripts/unit.sh @@ -6,6 +6,8 @@ set -o pipefail readonly PROGDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" readonly BUILDPACKDIR="$(cd "${PROGDIR}/.." && pwd)" +GO_TEST_PARAMS="${GO_TEST_PARAMS:-}" + # shellcheck source=SCRIPTDIR/.util/tools.sh source "${PROGDIR}/.util/tools.sh" @@ -50,7 +52,7 @@ function unit::run() { testout=$(mktemp) pushd "${BUILDPACKDIR}" > /dev/null - if go test ./... -v -run Unit | tee "${testout}"; then + if go test ./... -v ${GO_TEST_PARAMS} -run Unit | tee "${testout}"; then util::tools::tests::checkfocus "${testout}" util::print::success "** GO Test Succeeded **" else