#!/bin/bash artifact="${1}" delete_old_image() { image_name="${1}" digest=$(curl -k -u '{{ pillar["registry"]["username"] }}:{{ pillar["registry"]["password"] }}' -H 'Accept: application/vnd.docker.distribution.manifest.v2+json' https://{{ pillar["registry"]["url"] }}/v2/${image_name}/manifests/latest | jq '.config.digest' | awk -F\" '{print $2}') curl -k -u '{{ pillar["registry"]["username"] }}:{{ pillar["registry"]["password"] }}' -H 'Accept: application/vnd.docker.distribution.manifest.v2+json' -X DELETE https://{{ pillar["registry"]["url"] }}/v2/${image_name}/manifests/${digest} } for i in $(docker images | grep -v CREATED | awk '{print $3}'); do docker rmi --force ${i} done docker container prune -f pushd {{ pillar["ci"]["build_dir"] }} 2>/dev/null echo "Login to docker registry" docker login --username {{ pillar["registry"]["username"] }} --password {{ pillar["registry"]["password"] }} {{ pillar["registry"]["url"] }} if [ "${artifact}" == "baseimage" ]; then delete_old_image "{{ pillar["baseimage"]["image_name"] }}" {{ pillar["baseimage"]["build_dir"] }}/build.sh elif [ "${artifact}" == "database" ]; then delete_old_image "{{ pillar["database"]["image_name"] }}" {{ pillar["database"]["build_dir"] }}/build.sh elif [ "${artifact}" == "admin-api-server" ]; then delete_old_image "{{ pillar["admin_api_server"]["image_name"] }}_{{ pillar["admin_api_server"]["branch"] }}" {{ pillar["admin_api_server"]["build_dir"] }}/build.sh elif [ "${artifact}" == "customer-api-server" ]; then delete_old_image "{{ pillar["customer_api_server"]["image_name"] }}_{{ pillar["customer_api_server"]["branch"] }}" {{ pillar["customer_api_server"]["build_dir"] }}/build.sh elif [ "${artifact}" == "admin-web-ui" ]; then delete_old_image "{{ pillar["admin_web_ui"]["image_name"] }}_{{ pillar["admin_web_ui"]["branch"] }}" {{ pillar["admin_web_ui"]["build_dir"] }}/build.sh elif [ "${artifact}" == "customer-web-ui" ]; then delete_old_image "{{ pillar["customer_web_ui"]["image_name"] }}_{{ pillar["customer_web_ui"]["branch"] }}" {{ pillar["customer_web_ui"]["build_dir"] }}/build.sh elif [ "${artifact}" == "job-scheduler-server" ]; then delete_old_image "{{ pillar["job_scheduler_server"]["image_name"] }}_{{ pillar["job_scheduler_server"]["branch"] }}" {{ pillar["job_scheduler_server"]["build_dir"] }}/build.sh elif [ "${artifact}" == "workflow-server" ]; then delete_old_image "{{ pillar["workflow_server"]["image_name"] }}_{{ pillar["workflow_server"]["branch"] }}" {{ pillar["workflow_server"]["build_dir"] }}/build.sh else delete_old_image "{{ pillar["baseimage"]["image_name"] }}" delete_old_image "{{ pillar["database"]["image_name"] }}" delete_old_image "{{ pillar["admin_api_server"]["image_name"] }}_{{ pillar["admin_api_server"]["branch"] }}" delete_old_image "{{ pillar["customer_api_server"]["image_name"] }}_{{ pillar["customer_api_server"]["branch"] }}" delete_old_image "{{ pillar["admin_web_ui"]["image_name"] }}_{{ pillar["admin_web_ui"]["branch"] }}" delete_old_image "{{ pillar["customer_web_ui"]["image_name"] }}_{{ pillar["customer_web_ui"]["branch"] }}" delete_old_image "{{ pillar["job_scheduler_server"]["image_name"] }}_{{ pillar["job_scheduler_server"]["branch"] }}" delete_old_image "{{ pillar["workflow_server"]["image_name"] }}_{{ pillar["workflow_server"]["branch"] }}" {{ pillar["baseimage"]["build_dir"] }}/build.sh {{ pillar["database"]["build_dir"] }}/build.sh {{ pillar["admin_api_server"]["build_dir"] }}/build.sh {{ pillar["customer_api_server"]["build_dir"] }}/build.sh {{ pillar["admin_web_ui"]["build_dir"] }}/build.sh {{ pillar["customer_web_ui"]["build_dir"] }}/build.sh {{ pillar["job_scheduler_server"]["build_dir"] }}/build.sh {{ pillar["workflow_server"]["build_dir"] }}/build.sh fi popd 2>/dev/null exit 0