summaryrefslogtreecommitdiff
path: root/salt/openbook/ci/files/build.sh
blob: 649a1aff507e746b15f5a11286b63f9d18e10c29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/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"]["build_dir"] }}/build.sh
elif [ "${artifact}" == "customer-api-server" ]; then
    delete_old_image "{{ pillar["customer_api_server"]["image_name"] }}"
    {{ 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"]["build_dir"] }}/build.sh
elif [ "${artifact}" == "customer-web-ui" ]; then
    delete_old_image "{{ pillar["customer_web_ui"]["image_name"] }}"
    {{ 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"]["build_dir"] }}/build.sh
elif [ "${artifact}" == "workflow-server" ]; then
    delete_old_image "{{ pillar["workflow_server"]["image_name"] }}"
    {{ 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"] }}"
    delete_old_image "{{ pillar["customer_api_server"]["image_name"] }}"
    delete_old_image "{{ pillar["admin_web_ui"]["image_name"] }}"
    delete_old_image "{{ pillar["customer_web_ui"]["image_name"] }}"
    delete_old_image "{{ pillar["job_scheduler_server"]["image_name"] }}"
    delete_old_image "{{ pillar["workflow_server"]["image_name"] }}"
    {{ 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