diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6562f2c7330f63a7d51cbd88a8eeffb899dee00f..6bac78d99829c93a0a6995394bcba29f23008c31 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,7 @@ stages: - deploy_image - deploy_application - registry_cleanup -image: docker:19.03.1 +image: ${CI_REGISTRY}/cibuild:19.03.1 variables: DOCKER_TLS_CERTDIR: "/certs" #IMAGES_TO_BUILD: "cspp_geo_grb cspp_geo_grb_notify tests/cspp_geo_grb_sender" @@ -14,7 +14,7 @@ services: before_script: - docker info - - docker login -u gitlab-ci-token -p ${CI_BUILD_TOKEN} ${CI_REGISTRY} + - docker login -u ${CI_REGISTRY_USER} -p ${CI_JOB_TOKEN} ${CI_REGISTRY} build_cspp_geo_grb: stage: build_image @@ -22,3 +22,9 @@ build_cspp_geo_grb: - docker script: - ci/build_docker_image.sh + +registry_cleanup: + stage: registry_cleanup + tags: [] + script: + - ci/registry_cleanup.sh diff --git a/ci/build_docker_image.sh b/ci/build_docker_image.sh index b853190aeb79f2ddf8c0a02137b9fd0ed6f559af..efcb78f5cfff56bc664fd89d0378d92c9a353921 100755 --- a/ci/build_docker_image.sh +++ b/ci/build_docker_image.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash docker_id() { # Get docker ID for the specified image diff --git a/ci/cibuild/Dockerfile b/ci/cibuild/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..4a8d1eefe289ded0e9252dd902a88f2737f6c183 --- /dev/null +++ b/ci/cibuild/Dockerfile @@ -0,0 +1,5 @@ +# Custom docker-based build image with a few nice things added +FROM docker:19.03.1 +RUN apk update && apk upgrade && \ + apk add findutils bash curl jq && \ + rm -rf /var/cache/apk/* diff --git a/ci/registry_cleanup.sh b/ci/registry_cleanup.sh new file mode 100755 index 0000000000000000000000000000000000000000..e17a253767bc5ff83dcbcfdd2c9170d6e78ef19a --- /dev/null +++ b/ci/registry_cleanup.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +PROJECT_NAME="cspp_geo%2Fcspp-geo-web-viewer" +PROJ_URL="${CI_API_V4_URL}/projects/${PROJECT_NAME}" +registries_json=$(curl -H "PRIVATE_TOKEN: ${CI_JOB_TOKEN}" "${PROJ_URL}/registry/repositories") + +registry_id() { + echo $registries_json | name="$1" jq '.[] | select(.name == $ENV.name) | .id' + +} +for image_dir in $IMAGES_TO_BUILD; do + image_name=$(basename $image_dir) + docker_reg_id=$(register_id "$image_name") + curl -XDELETE -H "PRIVATE-TOKEN: ${TOKEN}" -d 'name_regex=dev_.*' -d "keep_n=5" "${PROJ_URL}/registry/repositories/${docker_reg_id}/tags" +done +