@@ -127,3 +127,63 @@ release:ngc-ubi8:
127
127
extends :
128
128
- .release:ngc
129
129
- .dist-ubi8
130
+
131
+ # Define the external image signing steps for NGC
132
+ # Download the ngc cli binary for use in the sign steps
133
+ .ngccli-setup :
134
+ before_script :
135
+ - apt-get update && apt-get install -y curl unzip jq
136
+ - |
137
+ if [ -z "${NGCCLI_VERSION}" ]; then
138
+ NGC_VERSION_URL="https://api.ngc.nvidia.com/v2/resources/nvidia/ngc-apps/ngc_cli/versions"
139
+ # Extract the latest version from the JSON data using jq
140
+ export NGCCLI_VERSION=$(curl -s $NGC_VERSION_URL | jq -r '.recipe.latestVersionIdStr')
141
+ fi
142
+ echo "NGCCLI_VERSION ${NGCCLI_VERSION}"
143
+ - curl -sSLo ngccli_linux.zip https://api.ngc.nvidia.com/v2/resources/nvidia/ngc-apps/ngc_cli/versions/${NGCCLI_VERSION}/files/ngccli_linux.zip
144
+ - unzip ngccli_linux.zip
145
+ - chmod u+x ngc-cli/ngc
146
+
147
+ # .sign forms the base of the deployment jobs which signs images in the CI registry.
148
+ # This is extended with the image name and version to be deployed.
149
+ .sign:ngc :
150
+ image : ubuntu:latest
151
+ stage : sign
152
+ rules :
153
+ - if : $CI_COMMIT_TAG
154
+ variables :
155
+ NGC_CLI_API_KEY : " ${NGC_REGISTRY_TOKEN}"
156
+ IMAGE_NAME : " ${NGC_REGISTRY_IMAGE}"
157
+ IMAGE_TAG : " ${CI_COMMIT_TAG}-${DIST}"
158
+ retry :
159
+ max : 2
160
+ before_script :
161
+ - !reference [.ngccli-setup, before_script]
162
+ # We ensure that the IMAGE_NAME and IMAGE_TAG is set
163
+ - ' echo Image Name: ${IMAGE_NAME} && [[ -n "${IMAGE_NAME}" ]] || exit 1'
164
+ - ' echo Image Tag: ${IMAGE_TAG} && [[ -n "${IMAGE_TAG}" ]] || exit 1'
165
+ script :
166
+ - ' echo "Signing the image ${IMAGE_NAME}:${IMAGE_TAG}"'
167
+ - ngc-cli/ngc registry image publish --source ${IMAGE_NAME}:${IMAGE_TAG} ${IMAGE_NAME}:${IMAGE_TAG} --public --discoverable --allow-guest --sign --org nvidia
168
+
169
+ sign:ngc-short-tag :
170
+ extends :
171
+ - .sign:ngc
172
+ needs :
173
+ - release:ngc-ubuntu22.04
174
+ variables :
175
+ IMAGE_TAG : " ${CI_COMMIT_TAG}"
176
+
177
+ sign:ngc-ubuntu22.04 :
178
+ extends :
179
+ - .dist-ubuntu22.04
180
+ - .sign:ngc
181
+ needs :
182
+ - release:ngc-ubuntu22.04
183
+
184
+ sign:ngc-ubi8 :
185
+ extends :
186
+ - .dist-ubi8
187
+ - .sign:ngc
188
+ needs :
189
+ - release:ngc-ubi8
0 commit comments