diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ad70af8..42f4a3c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,28 +1,50 @@ stages: -- build -- test +- build-devel +- test-devel +- publish-rolling -build_image: - stage: build +# Required Input From Trigger +# OS_DISTRO: ex. ubuntu +# OS_RELEASE: ex. eoan +# PACKAGE_STREAM: ex. eoan + +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_devel_image: + stage: "build-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 + - 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) tags: - builder - ubuntu - - IVB only: - triggers -test_image_devel: - stage: test +test_devel_image: + stage: "test-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/test-tag.sh tags: - gen9 only: - triggers +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} + 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 2cb40ef..f77e797 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 c116e66..7f58065 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 ${REGISTRY_URL}/${CONTAINER}:devel diff --git a/scripts/push-image.sh b/scripts/push-image.sh index 27dc880..448b13e 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 50% rename from scripts/devel-test.sh rename to scripts/test-tag.sh index c80e9c7..11ab458 100755 --- a/scripts/devel-test.sh +++ b/scripts/test-tag.sh @@ -11,17 +11,30 @@ 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 \ https://fate-suite.libav.org/h264-conformance/AUD_MW_E.264 +chmod -R 777 $(pwd)/media docker run \ --rm \ -a STDOUT \ --device=/dev/dri \ -e QSV_DEVICE=${QSV_DEVICE:-/dev/dri/renderD128} \ --volume $(pwd)/media:/media \ - ${REGISTRY_URL}/${CONTAINER}:devel \ + ${REGISTRY_URL}/${CONTAINER}:${TAG} \ test