@@ -229,53 +229,120 @@ push-images-to-staging:
229229 OUT_IMAGE_NAME : " ${NGC_STAGING_REGISTRY}/container-toolkit"
230230 OUT_IMAGE_TAG : " ${CI_COMMIT_SHORT_SHA}"
231231
232+ # The .create-version-file job creates a text file consisting of the images
233+ # that are to be released for this particular version.
234+ # The container images with the tags:
235+ # ${IN_IMAGE_TAG} and ${IN_IMAGE_TAG}-packaging
236+ # are scheduled for release as
237+ # ${OUT_IMAGE_TAG} and ${OUT_IMAGE_TAG}-packaging
238+ # respectively.
239+ .create-version-file :
240+ variables :
241+ VERSION_FILE : " build-info-${CI_PIPELINE_ID}.txt"
242+ PROJECT_NAME : " nvidia-container-toolkit"
243+ before_script :
244+ - |
245+ if [ -z ${IN_IMAGE_TAG} ]; then
246+ echo "IN_IMAGE_TAG not set"
247+ exit 1
248+ fi
249+ if [ -z ${OUT_IMAGE_TAG} ]; then
250+ echo "OUT_IMAGE_TAG not set"
251+ exit 1
252+ fi
253+
254+ rm -f ${VERSION_FILE}
255+ echo "${IN_IMAGE_TAG} ${OUT_IMAGE_TAG}" >> ${VERSION_FILE}
256+ echo "${IN_IMAGE_TAG}-packaging ${OUT_IMAGE_TAG}-packaging" >> ${VERSION_FILE}
257+ cat ${VERSION_FILE}
258+ artifacts :
259+ paths :
260+ - " ${VERSION_FILE}"
261+
232262.publish-images :
233263 stage : ngc-publish
234264 needs :
235265 - scan-images
236266 - push-images-to-staging
267+ extends :
268+ - .create-version-file
237269 image :
238270 name : " ${CNT_NGC_PUBLISH_IMAGE}"
239271 pull_policy : always
240- variables :
241-
242272 variables :
243273 GITLAB_ACCESS_TOKEN : " ${CNT_GITLAB_TOKEN}"
244274
245275 IN_IMAGE_TAG : " ${CI_COMMIT_SHORT_SHA}"
246276 OUT_IMAGE_TAG : " ${CI_COMMIT_TAG}"
247-
248- VERSION_FILE : " build-info-${CI_PIPELINE_ID}.txt"
249- PROJECT_NAME : " nvidia-container-toolkit"
250- before_script :
277+ script :
251278 - |
252279 if [ -n "${OVERRIDE_PUBLISHING_PROJECT_PATH}" ]; then
253280 NGC_PUBLISHING_PROJECT_PATH="${OVERRIDE_PUBLISHING_PROJECT_PATH}"
254281 fi
255-
256282 if [ -z "${NGC_PUBLISHING_PROJECT_PATH}" ]; then
257283 echo "NGC_PUBLISHING_PROJECT_PATH not set"
258284 exit 1
259285 fi
260286
261287 echo "publishing to ${NGC_PUBLISHING_PROJECT_PATH}"
262288
263- rm -f ${VERSION_FILE}
264- echo "${IN_IMAGE_TAG} ${OUT_IMAGE_TAG}" >> ${VERSION_FILE}
265- echo "${IN_IMAGE_TAG}-packaging ${OUT_IMAGE_TAG}-packaging" >> ${VERSION_FILE}
266- cat ${VERSION_FILE}
267- script :
268- - cnt-ngc-publish render --project-name "${PROJECT_NAME}" --versions-file "${VERSION_FILE}" --output "${PROJECT_NAME}".yaml
269- - cnt-ngc-publish merge-request --files "${PROJECT_NAME}.yaml"
289+ cnt-ngc-publish render --project-name "${PROJECT_NAME}" --versions-file "${VERSION_FILE}" --output "${PROJECT_NAME}".yaml
290+ cnt-ngc-publish merge-request --files "${PROJECT_NAME}.yaml"
270291 artifacts :
271292 paths :
272- - " ${VERSION_FILE}"
273293 - " ${PROJECT_NAME}.yaml"
274294
295+ .update-nspect :
296+ stage : ngc-publish
297+ needs :
298+ - push-images-to-staging
299+ extends :
300+ - .create-version-file
301+ image :
302+ name : " ${CNT_NGC_PUBLISH_IMAGE}"
303+ pull_policy : always
304+ variables :
305+ REPO_URL : " https://github.com/NVIDIA/nvidia-container-toolkit.git"
306+ script :
307+ - |
308+ if [ -z "${OSRB_BUG_ID}" ]; then
309+ echo "OSRB_BUG_ID not set"
310+ exit 1
311+ fi
312+ if [ -z "${RELEASE_VERSION}" ]; then
313+ export RELEASE_VERSION="${CI_COMMIT_TAG//-*}"
314+ fi
315+ cnt-ngc-publish nspect --versions-file "${VERSION_FILE}"
316+
317+ # Update the nspect staging environment to test the nspect publishing logic
318+ update-nspect-staging :
319+ extends :
320+ - .update-nspect
321+ rules :
322+ - if : $CI_COMMIT_TAG == null || $CI_COMMIT_TAG == ""
323+ variables :
324+ ENV : " stage"
325+ RELEASE_VERSION : " test"
326+ NSPECT_CLIENT_ID : " ${NSPECT_STAGING_CLIENT_ID}"
327+ NSPECT_CLIENT_SECRET : " ${NSPECT_STAGING_CLIENT_SECRET}"
328+
329+ # Update the nspect production environment with the new release
330+ update-nspect :
331+ extends :
332+ - .update-nspect
333+ rules :
334+ - if : $CI_COMMIT_TAG
335+ variables :
336+ OSRB_BUG_ID : " ${OSRB_BUG_ID}"
337+ ENV : " prod"
338+ NSPECT_CLIENT_ID : " ${NSPECT_PROD_CLIENT_ID}"
339+ NSPECT_CLIENT_SECRET : " ${NSPECT_PROD_CLIENT_SECRET}"
275340
276341publish-images-to-ngc :
277342 extends :
278343 - .publish-images
344+ needs :
345+ - update-nspect
279346 rules :
280347 - if : $CI_COMMIT_TAG
281348
@@ -284,6 +351,8 @@ publish-images-to-ngc:
284351publish-images-dummy :
285352 extends :
286353 - .publish-images
354+ needs :
355+ - update-nspect-staging
287356 variables :
288357 OVERRIDE_PUBLISHING_PROJECT_PATH : " dl/container-dev/ngc-automation"
289358 OUT_IMAGE_TAG : " publish-${CI_COMMIT_SHORT_SHA}"
0 commit comments