6767 username : ${{ inputs.image-registry-username }}
6868 password : ${{ inputs.image-registry-password }}
6969
70- - name : Extract Action Path
71- shell : bash
72- env :
73- GITHUB_ACTION_PATH : ${{ github.action_path }}
74- run : |
75- set -euo pipefail
76- echo "GITHUB_ACTION_PATH=$GITHUB_ACTION_PATH" | tee -a "$GITHUB_ENV"
77-
7870 - name : Re-tag container image
71+ id : re-tag
7972 shell : bash
8073 env :
8174 TARGET_IMAGE_URI : ${{ inputs.image-registry-uri }}/${{ inputs.image-repository }}:${{ inputs.image-manifest-tag }}
@@ -85,46 +78,51 @@ runs:
8578 docker tag "$SOURCE_IMAGE_URI" "$TARGET_IMAGE_URI"
8679
8780 # Output for the next step
88- echo "IMAGE_MANIFEST_URI=$TARGET_IMAGE_URI" | tee -a "$GITHUB_ENV "
81+ echo "IMAGE_MANIFEST_URI=$TARGET_IMAGE_URI" | tee -a "$GITHUB_OUTPUT "
8982
9083 - name : Push the container image to ${{ inputs.image-registry-uri }}
84+ id : push
9185 shell : bash
86+ env :
87+ IMAGE_MANIFEST_URI : ${{ steps.re-tag.outputs.IMAGE_MANIFEST_URI }}
9288 run : |
9389 set -euo pipefail
9490 docker image push "$IMAGE_MANIFEST_URI"
9591
9692 # Output for the next step
97- IMAGE_REPO_DIGEST =$("$GITHUB_ACTION_PATH/../.scripts/actions/get_repo_digest.sh" "$IMAGE_MANIFEST_URI")
98- echo "IMAGE_REPO_DIGEST=$IMAGE_REPO_DIGEST " | tee -a "$GITHUB_ENV "
93+ IMAGE_REPOSITORY_DIGEST =$("$GITHUB_ACTION_PATH/../.scripts/actions/get_repo_digest.sh" "$IMAGE_MANIFEST_URI")
94+ echo "IMAGE_REPOSITORY_DIGEST=$IMAGE_REPOSITORY_DIGEST " | tee -a "$GITHUB_OUTPUT "
9995
100- - name : Sign the container image (${{ env.IMAGE_REPO_DIGEST }})
96+ - name : Sign the container image (${{ env.IMAGE_REPOSITORY_DIGEST }})
10197 shell : bash
10298 env :
10399 RETRY_TIMEOUT : ${{ inputs.cosign-retry-timeout }}
104100 RETRY_COUNT : ${{ inputs.cosign-retries }}
105101 RETRY_ARGS : --verbose
102+ IMAGE_REPOSITORY_DIGEST : ${{ steps.push.outputs.IMAGE_REPOSITORY_DIGEST }}
106103 run : |
107104 set -euo pipefail
108105
109106 # This generates a signature and publishes it to the registry, next to
110107 # the image. This step uses the keyless signing flow with Github Actions
111108 # as the identity provider.
112- "$GITHUB_ACTION_PATH/../.scripts/actions/retry.sh" cosign sign --yes "${IMAGE_REPO_DIGEST }"
109+ "$GITHUB_ACTION_PATH/../.scripts/actions/retry.sh" cosign sign --yes "${IMAGE_REPOSITORY_DIGEST }"
113110
114- - name : Generate SBOM for the container image (${{ env.IMAGE_REPO_DIGEST }})
111+ - name : Generate SBOM for the container image (${{ env.IMAGE_REPOSITORY_DIGEST }})
115112 shell : bash
116113 env :
117114 RETRY_TIMEOUT : ${{ inputs.cosign-retry-timeout }}
118115 RETRY_COUNT : ${{ inputs.cosign-retries }}
119116 RETRY_ARGS : --verbose
117+ IMAGE_REPOSITORY_DIGEST : ${{ steps.push.outputs.IMAGE_REPOSITORY_DIGEST }}
120118 IMAGE_MANIFEST_TAG : ${{ inputs.image-manifest-tag }}
121119 IMAGE_REPOSITORY : ${{ inputs.image-repository }}
122120 REGISTRY_URI : ${{ inputs.image-registry-uri }}
123121 run : |
124122 set -euo pipefail
125123
126124 # Extract the digest from the image repo digest (right side of '@')
127- DIGEST=${IMAGE_REPO_DIGEST #*@}
125+ DIGEST=${IMAGE_REPOSITORY_DIGEST #*@}
128126
129127 # URL encode the digest and image repository, needed for the purl
130128 URLENCODED_DIGEST=$(jq -rn --arg input "$DIGEST" '$input | @uri')
@@ -143,16 +141,16 @@ runs:
143141
144142 # Get metadata from the image
145143 # NOTE (@Techassi): Maybe we should run this command only once
146- IMAGE_METADATA_DESCRIPTION=$(docker inspect --format='{{.Config.Labels.description}}' "$IMAGE_REPO_DIGEST ")
147- IMAGE_METADATA_NAME=$(docker inspect --format='{{.Config.Labels.name}}' "$IMAGE_REPO_DIGEST ")
144+ IMAGE_METADATA_DESCRIPTION=$(docker inspect --format='{{.Config.Labels.description}}' "$IMAGE_REPOSITORY_DIGEST ")
145+ IMAGE_METADATA_NAME=$(docker inspect --format='{{.Config.Labels.name}}' "$IMAGE_REPOSITORY_DIGEST ")
148146
149147 # Generate the SBOM
150148 syft scan \
151149 --output cyclonedx-json@1.5=sbom_raw.json \
152150 --select-catalogers "-cargo-auditable-binary-cataloger,+sbom-cataloger" \
153151 --scope all-layers \
154152 --source-name "$SOURCE_NAME" \
155- --source-version "$IMAGE_MANIFEST_TAG" "$IMAGE_REPO_DIGEST "
153+ --source-version "$IMAGE_MANIFEST_TAG" "$IMAGE_REPOSITORY_DIGEST "
156154
157155 # Merge SBOM components using https://github.com/stackabletech/mergebom
158156 curl --fail -L -o mergebom https://repo.stackable.tech/repository/packages/mergebom/stable-$(uname -m)
@@ -194,4 +192,4 @@ runs:
194192 --yes \
195193 --predicate sbom.merged.json \
196194 --type cyclonedx \
197- "${IMAGE_REPO_DIGEST }"
195+ "${IMAGE_REPOSITORY_DIGEST }"
0 commit comments