From 373048e79cbe5c8b7378436a9c1eab2fe69d21fa Mon Sep 17 00:00:00 2001 From: Jason L Hannan Date: Thu, 21 Nov 2019 11:28:42 -0800 Subject: [PATCH] initial CI trigger overhaul --- .gitlab-ci.yml | 143 ++++++++++++++++++++++--- Makefile | 9 -- scripts/build-image.sh | 7 +- scripts/clean-image.sh | 7 +- scripts/push-image.sh | 7 +- scripts/{devel-test.sh => test-tag.sh} | 18 +++- 6 files changed, 160 insertions(+), 31 deletions(-) delete mode 100644 Makefile rename scripts/{devel-test.sh => test-tag.sh} (52%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ad70af8..7408d84 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,28 +1,145 @@ stages: -- build -- test +- build-devel +- test-devel +- publish-rolling -build_image: - stage: build +variables: + ci_token: "38569832d11dfd78ba2a457ebb5b99" + PACKAGE_REPOSITORY: "https://repositories.intel.com/graphics" + REGISTRY_URL: "amr-registry.caas.intel.com/vtt-osgc/solutions" + CONTAINER: "intel-media-ffmpeg" + +build_ubuntu_eoan_devel_image: + stage: "build-devel" + variables: + OS_DISTRO: ubuntu + OS_RELEASE: eoan + PACKAGE_STREAM: eoan-devel script: - - make - after_script: - - ./scripts/clean-image.sh + - export TAG=test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) && scripts/build-dockerfile.sh && scripts/build-image.sh tags: - builder - ubuntu - - IVB only: - triggers -test_image_devel: - stage: test +build_ubuntu_disco_devel_image: + stage: "build-devel" + variables: + OS_DISTRO: ubuntu + OS_RELEASE: disco + PACKAGE_STREAM: disco-devel script: - - ./scripts/devel-test.sh - after_script: - - ./scripts/clean-image.sh + - export TAG=test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) && scripts/build-dockerfile.sh && scripts/build-image.sh + tags: + - builder + - ubuntu + only: + - triggers + +build_rhel_8_0_devel_image: + stage: "build-devel" + variables: + OS_DISTRO: rhel + OS_RELEASE: "8.0" + PACKAGE_STREAM: "8.0-devel" + script: + - export TAG=test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) && scripts/build-dockerfile.sh && scripts/build-image.sh + tags: + - builder + - ubuntu + only: + - triggers + +test_ubuntu_eoan_devel_image: + stage: "test-devel" + variables: + OS_DISTRO: ubuntu + OS_RELEASE: eoan + PACKAGE_STREAM: eoan-devel + script: + - export TAG=test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) && ./scripts/test-tag.sh tags: - gen9 only: - triggers +test_ubuntu_disco_devel_image: + stage: "test-devel" + variables: + OS_DISTRO: ubuntu + OS_RELEASE: disco + PACKAGE_STREAM: disco-devel + script: + - export TAG=test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) && ./scripts/test-tag.sh + tags: + - gen9 + only: + - triggers + +test_rhel_8_0_devel_image: + stage: "test-devel" + variables: + OS_DISTRO: rhel + OS_RELEASE: "8.0" + PACKAGE_STREAM: "8.0-devel" + script: + - export TAG=test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d) && ./scripts/test-tag.sh + tags: + - gen9 + only: + - triggers + +publish_ubuntu_eoan_rolling_image: + stage: "publish-rolling" + variables: + OS_DISTRO: ubuntu + OS_RELEASE: eoan + PACKAGE_STREAM: eoan-devel + 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} + tags: + - builder + - ubuntu + only: + - triggers + +publish_ubuntu_disco_rolling_image: + stage: "publish-rolling" + variables: + OS_DISTRO: ubuntu + OS_RELEASE: disco + PACKAGE_STREAM: disco-devel + 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} + tags: + - builder + - ubuntu + only: + - triggers + +publish_rhel_8_0_rolling_image: + stage: "publish-rolling" + variables: + OS_DISTRO: rhel + OS_RELEASE: "8.0" + PACKAGE_STREAM: "8.0-devel" + 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} + tags: + - builder + - ubuntu + only: + - triggers \ No newline at end of file diff --git a/Makefile b/Makefile deleted file mode 100644 index 05c4f7d..0000000 --- a/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -all: build_ubuntu - -.PHONY: all - -build_ubuntu: Dockerfile.solution templates/*.in SOLUTION MANIFEST - @scripts/build-dockerfile - @scripts/build-images - @scripts/push-images - diff --git a/scripts/build-image.sh b/scripts/build-image.sh index 5421a99..e03d4c7 100755 --- a/scripts/build-image.sh +++ b/scripts/build-image.sh @@ -11,8 +11,11 @@ fi . SOLUTION . MANIFEST -export $(sed -nE "s,(^[^#][^=]*).*$,\1,pg" SOLUTION | ${CMD} -d '\n') -export $(sed -nE "s,(^[^#][^=]*).*$,\1,pg" MANIFEST | ${CMD} -d '\n') +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" ]] && { diff --git a/scripts/clean-image.sh b/scripts/clean-image.sh index f98b9fe..e2b576c 100755 --- a/scripts/clean-image.sh +++ b/scripts/clean-image.sh @@ -11,7 +11,10 @@ fi . SOLUTION . MANIFEST -export $(sed -nE "s,(^[^#][^=]*).*$,\1,pg" SOLUTION | ${CMD} -d '\n') -export $(sed -nE "s,(^[^#][^=]*).*$,\1,pg" MANIFEST | ${CMD} -d '\n') +VARS=($(sed -nE "s,(^[^#][^=]*).*$,\1,pg" SOLUTION)) +VARS+=($(sed -nE "s,(^[^#][^=]*).*$,\1,pg" MANIFEST)) +for var in ${VARS[@]}; do + export ${var} +done docker rmi ${REPO_URL}/${CONTAINER}:devel diff --git a/scripts/push-image.sh b/scripts/push-image.sh index 7f3ef0f..c9e569b 100755 --- a/scripts/push-image.sh +++ b/scripts/push-image.sh @@ -11,8 +11,11 @@ fi . SOLUTION . MANIFEST -export $(sed -nE "s,(^[^#][^=]*).*$,\1,pg" SOLUTION | ${CMD} -d '\n') -export $(sed -nE "s,(^[^#][^=]*).*$,\1,pg" MANIFEST | ${CMD} -d '\n') +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" ]] && { diff --git a/scripts/devel-test.sh b/scripts/test-tag.sh similarity index 52% rename from scripts/devel-test.sh rename to scripts/test-tag.sh index 568a71f..89eb8e2 100755 --- a/scripts/devel-test.sh +++ b/scripts/test-tag.sh @@ -11,8 +11,20 @@ fi . SOLUTION . MANIFEST -export $(sed -nE "s,(^[^#][^=]*).*$,\1,pg" SOLUTION | ${CMD} -d '\n') -export $(sed -nE "s,(^[^#][^=]*).*$,\1,pg" MANIFEST | ${CMD} -d '\n') +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}} +} + +docker pull ${REGISTRY_URL}/${CONTAINER}:${TAG} mkdir $(pwd)/media wget -O $(pwd)/media/AUD_MW_E.264 \ @@ -23,5 +35,5 @@ docker run \ --device=/dev/dri \ -e QSV_DEVICE=${QSV_DEVICE:-/dev/dri/renderD128} \ --volume $(pwd)/media:/media \ - ${REPO_URL}/${CONTAINER}:devel \ + ${REGISTRY_URL}/${CONTAINER}:${TAG} \ test