diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 42f4a3c..4cbeadd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,7 +9,7 @@ stages: # PACKAGE_STREAM: ex. eoan variables: - ci_token: "38569832d11dfd78ba2a457ebb5b99" + ci_enabled: "true" PACKAGE_REPOSITORY: "https://repositories.intel.com/graphics" REGISTRY_URL: "amr-registry.caas.intel.com/vtt-osgc/solutions" CONTAINER: "intel-media-ffmpeg" @@ -17,9 +17,9 @@ variables: build_devel_image: stage: "build-devel" script: - - export TAG=test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) && scripts/build-dockerfile.sh && scripts/build-image.sh - - docker tag ${CONTAINER}:test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) ${REGISTRY_URL}/${CONTAINER}:test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) - - docker push ${REGISTRY_URL}/${CONTAINER}:test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) + - ./scripts/build-dockerfile.sh + - ./scripts/build-image.sh + - ./scripts/push-test-image.sh tags: - builder - ubuntu @@ -29,7 +29,7 @@ build_devel_image: test_devel_image: stage: "test-devel" script: - - export TAG=test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) && ./scripts/test-tag.sh + - ./scripts/test-tag.sh tags: - gen9 only: @@ -38,11 +38,8 @@ test_devel_image: publish_rolling_image: stage: "publish-rolling" script: - - docker pull ${REGISTRY_URL}/${CONTAINER}:test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) - - docker tag ${REGISTRY_URL}/${CONTAINER}:test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) ${REGISTRY_URL}/${CONTAINER}:${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) - - docker tag ${REGISTRY_URL}/${CONTAINER}:test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) ${REGISTRY_URL}/${CONTAINER}:latest-${OS_DISTRO}-${PACKAGE_STREAM} - - docker push ${REGISTRY_URL}/${CONTAINER}:${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) - - docker push ${REGISTRY_URL}/${CONTAINER}:latest-${OS_DISTRO}-${PACKAGE_STREAM} + - ./scripts/push-rolling-image.sh + - ./scripts/remove-pipeline-tag.sh tags: - builder - ubuntu diff --git a/scripts/build-image.sh b/scripts/build-image.sh index 2affa83..c5bc518 100755 --- a/scripts/build-image.sh +++ b/scripts/build-image.sh @@ -17,6 +17,7 @@ RELEASE_INFO=${RELEASE_INFO:-N/A} } || { TAG=${TAG:-test-${OS_DISTRO}-${PACKAGE_STREAM}-${RELEASE_INFO}} } +TAG=${CI_PIPELINE_IID}-${TAG} case "${OS_DISTRO}" in rhel) diff --git a/scripts/push-rolling-image.sh b/scripts/push-rolling-image.sh new file mode 100755 index 0000000..823d990 --- /dev/null +++ b/scripts/push-rolling-image.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Determine if it is Mac OS and switch to use gxargs instead +CMD=xargs +if [ $(which system_profiler) ]; then + CMD=gxargs +fi + +# Bring in the variables from SOLUTION file, supporting +# nested substitution +. SOLUTION +. MANIFEST + +VARS=($(sed -nE "s,(^[^#][^=]*).*$,\1,pg" SOLUTION)) +VARS+=($(sed -nE "s,(^[^#][^=]*).*$,\1,pg" MANIFEST)) +for var in ${VARS[@]}; do + export ${var} +done + +RELEASE_INFO=${RELEASE_INFO:-N/A} +[[ "${RELEASE_INFO}" == "N/A" ]] && { + TAG=${TAG:-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d)} +} || { + TAG=${TAG:-${OS_DISTRO}-${PACKAGE_STREAM}-${RELEASE_INFO}} +} + +docker pull ${REGISTRY_URL}/${CONTAINER}:${CI_PIPELINE_IID}-test-build-${TAG} +docker tag ${REGISTRY_URL}/${CONTAINER}:${CI_PIPELINE_IID}-test-build-${TAG} ${REGISTRY_URL}/${CONTAINER}:${TAG} +docker tag ${REGISTRY_URL}/${CONTAINER}:${CI_PIPELINE_IID}-test-build-${TAG} ${REGISTRY_URL}/${CONTAINER}:latest-${OS_DISTRO}-${PACKAGE_STREAM} +docker push ${REGISTRY_URL}/${CONTAINER}:${TAG} +docker push ${REGISTRY_URL}/${CONTAINER}:latest-${OS_DISTRO}-${PACKAGE_STREAM} \ No newline at end of file diff --git a/scripts/push-image.sh b/scripts/push-test-image.sh similarity index 98% rename from scripts/push-image.sh rename to scripts/push-test-image.sh index c92dd0a..6743105 100755 --- a/scripts/push-image.sh +++ b/scripts/push-test-image.sh @@ -17,6 +17,7 @@ RELEASE_INFO=${RELEASE_INFO:-N/A} } || { TAG=${TAG:-test-${OS_DISTRO}-${PACKAGE_STREAM}-${RELEASE_INFO}} } +TAG=${CI_PIPELINE_IID}-${TAG} docker tag ${CONTAINER}:${TAG} ${REGISTRY_URL}/${CONTAINER}:${TAG} \ && docker push ${REGISTRY_URL}/${CONTAINER}:${TAG} \ diff --git a/scripts/remove-pipeline-tag.sh b/scripts/remove-pipeline-tag.sh new file mode 100755 index 0000000..812903f --- /dev/null +++ b/scripts/remove-pipeline-tag.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Bring in the variables from SOLUTION file, supporting +# nested substitution +. SOLUTION +. MANIFEST + +VARS=($(sed -nE "s,(^[^#][^=]*).*$,\1,pg" SOLUTION)) +VARS+=($(sed -nE "s,(^[^#][^=]*).*$,\1,pg" MANIFEST)) +for var in ${VARS[@]}; do + export ${var} +done + +RELEASE_INFO=${RELEASE_INFO:-N/A} +[[ "${RELEASE_INFO}" == "N/A" ]] && { + TAG=${TAG:-test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d)} +} || { + TAG=${TAG:-test-${OS_DISTRO}-${PACKAGE_STREAM}-${RELEASE_INFO}} +} +TAG=${CI_PIPELINE_IID}-${TAG} + +curl -i -k -u ${HARBOR_USER}:${HARBOR_PASSWD} \ + -X DELETE "https://amr-registry.caas.intel.com/api/repositories/vtt-osgc%2Fsolutions%2F${CONTAINER}/tags/${TAG}" \ + -H "accept: application/json" \ No newline at end of file diff --git a/scripts/test-tag.sh b/scripts/test-tag.sh index 11ab458..97e6c13 100755 --- a/scripts/test-tag.sh +++ b/scripts/test-tag.sh @@ -23,6 +23,7 @@ RELEASE_INFO=${RELEASE_INFO:-N/A} } || { TAG=${TAG:-test-${OS_DISTRO}-${PACKAGE_STREAM}-${RELEASE_INFO}} } +TAG=${CI_PIPELINE_IID}-${TAG} docker pull ${REGISTRY_URL}/${CONTAINER}:${TAG}