diff --git a/.common-ci.yml b/.common-ci.yml index 8602fd1c..c28bf25e 100644 --- a/.common-ci.yml +++ b/.common-ci.yml @@ -180,7 +180,7 @@ test-packaging: # Download the regctl binary for use in the release steps .regctl-setup: before_script: - - export REGCTL_VERSION=v0.3.10 + - export REGCTL_VERSION=v0.4.5 - apk add --no-cache curl - mkdir -p bin - curl -sSLo bin/regctl https://github.com/regclient/regclient/releases/download/${REGCTL_VERSION}/regctl-linux-amd64 diff --git a/.nvidia-ci.yml b/.nvidia-ci.yml index b97184d2..23599e6a 100644 --- a/.nvidia-ci.yml +++ b/.nvidia-ci.yml @@ -36,6 +36,8 @@ variables: STAGING_REGISTRY: registry.gitlab.com/nvidia/container-toolkit/container-toolkit/staging STAGING_VERSION: ${CI_COMMIT_SHORT_SHA} ARTIFACTORY_REPO_BASE: "https://urm.nvidia.com/artifactory/sw-gpu-cloudnative" + # TODO: We should set the kitmaker release folder here once we have the end-to-end workflow set up + KITMAKER_RELEASE_FOLDER: "testing" .image-pull: stage: image-build @@ -311,20 +313,20 @@ scan-ubi8-arm64: needs: - image-packaging variables: + VERSION: "${CI_COMMIT_SHORT_SHA}" PACKAGE_REGISTRY: "${CI_REGISTRY}" PACKAGE_REGISTRY_USER: "${CI_REGISTRY_USER}" PACKAGE_REGISTRY_TOKEN: "${CI_REGISTRY_PASSWORD}" PACKAGE_IMAGE_NAME: "${CI_REGISTRY_IMAGE}/container-toolkit" PACKAGE_IMAGE_TAG: "${CI_COMMIT_SHORT_SHA}-packaging" PACKAGE_ARTIFACTORY_REPO: "${ARTIFACTORY_REPO_BASE}-${PACKAGE_REPO_TYPE}-local" - KITMAKER_ARTIFACTORY_REPO: "${ARTIFACTORY_REPO_BASE}-generic-local/kitmaker" + KITMAKER_ARTIFACTORY_REPO: "${ARTIFACTORY_REPO_BASE}-generic-local/${KITMAKER_RELEASE_FOLDER}" script: - !reference [.regctl-setup, before_script] - apk add --no-cache bash - regctl registry login "${PACKAGE_REGISTRY}" -u "${PACKAGE_REGISTRY_USER}" -p "${PACKAGE_REGISTRY_TOKEN}" - - ./scripts/extract-packages.sh "${PACKAGE_REGISTRY}/${PACKAGE_IMAGE_NAME}:${PACKAGE_IMAGE_TAG}" "${DIST}-${ARCH}" + - ./scripts/extract-packages.sh "${PACKAGE_IMAGE_NAME}:${PACKAGE_IMAGE_TAG}" "${DIST}-${ARCH}" # TODO: ./scripts/release-packages-artifactory.sh "${DIST}-${ARCH}" "${PACKAGE_ARTIFACTORY_REPO}" - - ./scripts/kitmakerize-packages.sh" "${DIST}-${ARCH}" - ./scripts/release-kitmaker-artifactory.sh "${DIST}-${ARCH}" "${KITMAKER_ARTIFACTORY_REPO}" release:staging-ubuntu18.04: diff --git a/scripts/extract-packages.sh b/scripts/extract-packages.sh index 6d3d6edb..234b80c8 100755 --- a/scripts/extract-packages.sh +++ b/scripts/extract-packages.sh @@ -92,6 +92,8 @@ function extract-all() { local dist=$1 local arch=$2 + echo "Extracting packages for ${dist}-${arch} from ${PACKAGE_IMAGE}" + mkdir -p "${ARTIFACTS_DIR}" copy-file "${PACKAGE_IMAGE}" "/artifacts/manifest.txt" "${ARTIFACTS_DIR}/manifest.txt" diff --git a/scripts/release-kitmaker-artifactory.sh b/scripts/release-kitmaker-artifactory.sh index d96f0780..5b5d7bf0 100755 --- a/scripts/release-kitmaker-artifactory.sh +++ b/scripts/release-kitmaker-artifactory.sh @@ -34,7 +34,7 @@ SCRIPTS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../scripts && pwd )" PROJECT_ROOT="$( cd "${SCRIPTS_DIR}/.." && pwd )" COMPONENT_NAME="nvidia-container-toolkit" -if [[ $# -ne 1 ]]; then +if [[ $# -ne 2 ]]; then assert_usage "$@" fi @@ -45,6 +45,8 @@ DIST=${DISTARCH%-*} ARCH=${DISTARCH#*-} ARTIFACTORY_URL=$2 +CURL=${CURL:-curl} + if [[ -z "${DIST}" || -z "${ARCH}" ]]; then echo "ERROR: Distro and Architecture must be specified." >&2 assert_usage "$@" @@ -101,6 +103,8 @@ process_props() { PROPS+=$(set_prop_value "${var}" "${!var}") fi done + + echo "Applying properties: ${PROPS}" } ## NOT USED: @@ -139,7 +143,7 @@ upload_file() { # extract the Artifactory hostname artifactory_host=$(echo "${ARTIFACTORY_URL##https://}" | awk -F'/' '{print $1}') # get base part of the ARTIFACTORY_URL without hostname - local image_path="${ARTIFACTORY_URL#https://${artifactory_host}/}/${dist}/${arch}" + local image_path="${ARTIFACTORY_URL#https://${artifactory_host}/}/${dist}/${arch}/$(basename ${file})" local PROPS process_props "${dist}" "${arch}" @@ -157,7 +161,7 @@ upload_file() { -H "X-JFrog-Art-Api: ${ARTIFACTORY_TOKEN}" \ -H "X-Checksum-Sha1: ${SHA1_SUM}" \ ${file:+-T ${file}} -X PUT \ - "https://${artifactory_host}/artifactory/${image_path};${PROPS}" ; + "https://${artifactory_host}/${image_path};${PROPS}" ; then echo "ERROR: upload file failed: ${file}" exit 1 @@ -205,7 +209,8 @@ function kitmakerize-distro() { rmdir "${scratch_dir}" } -kitmaker_name="${COMPONENT_NAME//-/_}-${DIST}-${ARCH}-${NVIDIA_CONTAINER_TOOLKIT_PACKAGE_VERSION}" +: "${VERSION=$({NVIDIA_CONTAINER_TOOLKIT_PACKAGE_VERSION})}" +kitmaker_name="${COMPONENT_NAME//-/_}-${DIST}-${ARCH}-${VERSION}" kitmaker_archive="${KITMAKER_DIR}/${kitmaker_name}.tar.gz" kitmakerize-distro "${DIST}" "${ARCH}" "${kitmaker_archive}" push-kitmaker-artifactory "${DIST}" "${ARCH}" "${kitmaker_archive}"