@@ -46,6 +46,7 @@ stages:
4646 - pull
4747 - scan
4848 - release
49+ - ngc-publish
4950
5051.pipeline-trigger-rules :
5152 rules :
@@ -231,37 +232,59 @@ push-images-to-staging:
231232 OUT_IMAGE_NAME : " ${NGC_STAGING_REGISTRY}/container-toolkit"
232233 OUT_IMAGE_TAG : " ${CI_COMMIT_SHORT_SHA}"
233234
234- .release-images :
235- extends :
236- - .copy-images
237- stage : release
235+ .publish-images :
236+ stage : ngc-publish
238237 needs :
239238 - scan-images
240239 - push-images-to-staging
240+ image :
241+ name : " ${CNT_NGC_PUBLISH_IMAGE}"
242+ pull_policy : always
241243 variables :
242- IN_REGISTRY : " ${CI_REGISTRY}"
243- IN_REGISTRY_USER : " ${CI_REGISTRY_USER}"
244- IN_REGISTRY_TOKEN : " ${CI_REGISTRY_PASSWORD}"
245- IN_IMAGE_NAME : " ${CI_REGISTRY_IMAGE}/container-toolkit"
246- IN_IMAGE_TAG : " ${CI_COMMIT_SHORT_SHA}"
247244
248- OUT_REGISTRY : " ${NGC_REGISTRY}"
249- OUT_REGISTRY_USER : " ${NGC_REGISTRY_USER}"
250- OUT_REGISTRY_TOKEN : " ${NGC_REGISTRY_TOKEN}"
251- OUT_IMAGE_NAME : " ${NGC_REGISTRY_IMAGE}"
245+ variables :
246+ GITLAB_ACCESS_TOKEN : " ${CNT_GITLAB_TOKEN}"
247+
252248 OUT_IMAGE_TAG : " ${CI_COMMIT_TAG}"
253249
254- release-images-to-ngc :
250+ VERSION_FILE : " build-info-${CI_PIPELINE_ID}.txt"
251+ PROJECT_NAME : " nvidia-container-toolkit"
252+ before_script :
253+ - |
254+ if [ -z "$NGC_PUBLISHING_PROJECT_PATH" ]; then
255+ echo "NGC_PUBLISHING_PROJECT_PATH not set"
256+ exit 1
257+ else
258+ echo "publishing to ${NGC_PUBLISHING_PROJECT_PATH}"
259+ fi
260+
261+ rm -f ${VERSION_FILE}
262+ echo "${IN_IMAGE_TAG} ${OUT_IMAGE_TAG}" >> ${VERSION_FILE}
263+ echo "${IN_IMAGE_TAG}-packaging ${OUT_IMAGE_TAG}-packaging" >> ${VERSION_FILE}"
264+ cat ${VERSION_FILE}
265+ script :
266+ - cnt-ngc-publish render --project-name "${PROJECT_NAME}" --versions-file "${VERSION_FILE}" --output "${PROJECT_NAME}".yaml
267+ - cnt-ngc-publish merge-request --files "${PROJECT_NAME}.yaml"
268+ artifacts :
269+ paths :
270+ - " ${VERSION_FILE}"
271+ - " ${PROJECT_NAME}.yaml"
272+
273+
274+ publish-images-to-ngc :
255275 extends :
256- - .release -images
276+ - .publish -images
257277 rules :
258278 - if : $CI_COMMIT_TAG
259279
260- release-images-dummy :
280+ # We create a dummy MR that exercises the publishing logic.
281+ # TODO: This MR should be closed automatically.
282+ publish-images-dummy :
261283 extends :
262- - .release -images
284+ - .publish -images
263285 variables :
264- REGCTL : " echo [DUMMY] regctl"
286+ NGC_PUBLISHING_PROJECT_PATH : dl/container-dev/ngc-automation
287+ OUT_IMAGE_TAG : " ${CI_COMMIT_SHORT_SHA}"
265288 rules :
266289 - if : $CI_COMMIT_TAG == null || $CI_COMMIT_TAG == ""
267290
0 commit comments