diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 42f4a3c..ddaa883 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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,7 @@ 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 tags: - builder - ubuntu diff --git a/scripts/push-rolling-image.sh b/scripts/push-rolling-image.sh new file mode 100755 index 0000000..693b22b --- /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}:test-build-${TAG} +docker tag ${REGISTRY_URL}/${CONTAINER}:test-build-${TAG} ${REGISTRY_URL}/${CONTAINER}:${TAG} +docker tag ${REGISTRY_URL}/${CONTAINER}: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 100% rename from scripts/push-image.sh rename to scripts/push-test-image.sh