66 - published
77env :
88 REGISTRIES_FILENAME : " registries.json"
9+ GCR_REGISTRY : " gcr.io"
10+ GCR_PASSWORD : ${{ secrets.GCR_PUSH_BOT_JSON_KEY }}
11+ GCR_USERNAME : " _json_key"
12+ DOCKERHUB_REGISTRY : docker.io
13+ DOCKERHUB_USERNAME : ${{ secrets.PAKETO_BUILDPACKS_DOCKERHUB_USERNAME }}
14+ DOCKERHUB_PASSWORD : ${{ secrets.PAKETO_BUILDPACKS_DOCKERHUB_PASSWORD }}
915
1016jobs :
1117 push :
1420 steps :
1521
1622 - name : Checkout
17- uses : actions/checkout@v4
23+ uses : actions/checkout@v5
1824
1925 - name : Parse Event
2026 id : event
@@ -25,14 +31,13 @@ jobs:
2531 echo "tag_full=${FULL_VERSION}" >> "$GITHUB_OUTPUT"
2632 echo "tag_minor=${MINOR_VERSION}" >> "$GITHUB_OUTPUT"
2733 echo "tag_major=${MAJOR_VERSION}" >> "$GITHUB_OUTPUT"
28- echo "download_url =$(jq -r '.release.assets[] | select(.name | endswith(".cnb ")) | .url' "${GITHUB_EVENT_PATH}")" >> "$GITHUB_OUTPUT"
34+ echo "download_tgz_file_url =$(jq -r '.release.assets[] | select(.name | endswith(".tgz ")) | .url' "${GITHUB_EVENT_PATH}")" >> "$GITHUB_OUTPUT"
2935
30- - name : Download
31- id : download
36+ - name : Download .tgz buildpack release artifact
3237 uses : paketo-buildpacks/github-config/actions/release/download-asset@main
3338 with :
34- url : ${{ steps.event.outputs.download_url }}
35- output : " /github/workspace/buildpackage.cnb "
39+ url : ${{ steps.event.outputs.download_tgz_file_url }}
40+ output : " /github/workspace/buildpack-release-artifact.tgz "
3641 token : ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}
3742
3843 - name : Parse Configs
@@ -55,50 +60,69 @@ jobs:
5560 echo "push_to_dockerhub=${push_to_dockerhub}" >> "$GITHUB_OUTPUT"
5661 echo "push_to_gcr=${push_to_gcr}" >> "$GITHUB_OUTPUT"
5762
63+ - name : Install yj and crane
64+ uses :
buildpacks/github-actions/[email protected] 65+
5866 - name : Validate version
5967 run : |
60- buidpackTomlVersion=$(sudo skopeo inspect "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" | jq -r '.Labels."io.buildpacks.buildpackage.metadata" | fromjson | . version' )
68+ buidpackTomlVersion=$(tar -xzf buildpack-release-artifact.tgz --to-stdout buildpack.toml | yj -tj | jq -r .buildpack. version)
6169 githubReleaseVersion="${{ steps.event.outputs.tag_full }}"
6270 if [[ "$buidpackTomlVersion" != "$githubReleaseVersion" ]]; then
6371 echo "Version in buildpack.toml ($buidpackTomlVersion) and github release ($githubReleaseVersion) are not identical"
6472 exit 1
6573 fi
6674
75+ - name : Docker login docker.io
76+ uses : docker/login-action@v3
77+ with :
78+ username : ${{ env.DOCKERHUB_USERNAME }}
79+ password : ${{ env.DOCKERHUB_PASSWORD }}
80+ registry : ${{ env.DOCKERHUB_REGISTRY }}
81+
82+ - name : Docker login gcr.io
83+ uses : docker/login-action@v3
84+ if : ${{ steps.parse_configs.outputs.push_to_gcr == 'true' }}
85+ with :
86+ username : ${{ env.GCR_USERNAME }}
87+ password : ${{ env.GCR_PASSWORD }}
88+ registry : ${{ env.GCR_REGISTRY }}
89+
6790 - name : Push to GCR
6891 if : ${{ steps.parse_configs.outputs.push_to_gcr == 'true' }}
69- env :
70- GCR_PUSH_BOT_JSON_KEY : ${{ secrets.GCR_PUSH_BOT_JSON_KEY }}
7192 run : |
72- echo "${GCR_PUSH_BOT_JSON_KEY}" | sudo skopeo login --username _json_key --password-stdin gcr.io
73- sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_full }}"
74- sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_minor }}"
75- sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_major }}"
76- sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://gcr.io/${{ github.repository }}:latest"
93+ ./scripts/publish.sh \
94+ --archive-path buildpack-release-artifact.tgz \
95+ --image-ref "gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_full }}"
96+
97+ crane copy "gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_full }}" "gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_minor }}"
98+ crane copy "gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_full }}" "gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_major }}"
99+ crane copy "gcr.io/${{ github.repository }}:${{ steps.event.outputs.tag_full }}" "gcr.io/${{ github.repository }}:latest"
77100
78101 - name : Push to DockerHub
79102 if : ${{ steps.parse_configs.outputs.push_to_dockerhub == 'true' }}
80103 id : push
81- env :
82- DOCKERHUB_USERNAME : ${{ secrets.PAKETO_BUILDPACKS_DOCKERHUB_USERNAME }}
83- DOCKERHUB_PASSWORD : ${{ secrets.PAKETO_BUILDPACKS_DOCKERHUB_PASSWORD }}
84- GITHUB_REPOSITORY_OWNER : ${{ github.repository_owner }}
85104 run : |
86- REPOSITORY="${GITHUB_REPOSITORY_OWNER/-/}/${GITHUB_REPOSITORY#${GITHUB_REPOSITORY_OWNER}/}" # translates 'paketo-buildpacks/bundle-install' to 'paketobuildpacks/bundle-install'
87- IMAGE="index.docker.io/${REPOSITORY}"
88- echo "${DOCKERHUB_PASSWORD}" | sudo skopeo login --username "${DOCKERHUB_USERNAME}" --password-stdin index.docker.io
89- sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://${IMAGE}:${{ steps.event.outputs.tag_full }}"
90- sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://${IMAGE}:${{ steps.event.outputs.tag_minor }}"
91- sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://${IMAGE}:${{ steps.event.outputs.tag_major }}"
92- sudo skopeo copy "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" "docker://${IMAGE}:latest"
105+ IMAGE="${GITHUB_REPOSITORY_OWNER/-/}/${GITHUB_REPOSITORY#${GITHUB_REPOSITORY_OWNER}/}" # translates 'paketo-buildpacks/bundle-install' to 'paketobuildpacks/bundle-install'
106+
107+ ./scripts/publish.sh \
108+ --archive-path buildpack-release-artifact.tgz \
109+ --image-ref "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}"
110+
111+ pushed_image_index_digest=$(crane digest "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" | xargs)
112+
113+ crane copy "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_minor }}"
114+ crane copy "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_major }}"
115+ crane copy "${DOCKERHUB_REGISTRY}/${IMAGE}:${{ steps.event.outputs.tag_full }}" "${DOCKERHUB_REGISTRY}/${IMAGE}:latest"
116+
93117 echo "image=${IMAGE}" >> "$GITHUB_OUTPUT"
94- echo "digest=$(sudo skopeo inspect "oci-archive:${GITHUB_WORKSPACE}/buildpackage.cnb" | jq -r .Digest) " >> "$GITHUB_OUTPUT"
118+ echo "digest=$pushed_image_index_digest " >> "$GITHUB_OUTPUT"
95119
96120 - name : Register with CNB Registry
97121 uses : docker://ghcr.io/buildpacks/actions/registry/request-add-entry:main
98122 with :
99123 id : ${{ github.repository }}
100124 version : ${{ steps.event.outputs.tag_full }}
101- address : ${{ steps.push.outputs.image }}@${{ steps.push.outputs.digest }}
125+ address : index.docker.io/ ${{ steps.push.outputs.image }}@${{ steps.push.outputs.digest }}
102126 token : ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}
103127
104128 failure :
0 commit comments