-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathbuild.sh
executable file
·66 lines (57 loc) · 1.72 KB
/
build.sh
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
66
#!/usr/bin/env bash
set -e
build_octo_cli_docker_image() {
nix build nixpkgs.octo-cli-container \
-I nixpkgs=nix \
-o "$1"
}
build_octopod_server_docker_image() {
nix build nixpkgs.octopod-server-container \
--arg migrations "$1" \
-I nixpkgs=nix \
-o "$2"
}
push_docker_images() {
outfile=latest-octopod-server-docker
for image_name in $octo_cli_docker $octopod_server_docker; do
image_type=$(echo "$image_name" | cut -d- -f1)
image=$(ls -ls "$image_name" | awk '{print $12}')
echo "size: $(du -sh $image)"
docker load --input "$image" | tee "$outfile"
nixcontainer=$(awk '{print $3}' $outfile)
docker tag "$nixcontainer" "typeable/${image_type}:$1"
docker push "typeable/${image_type}:$1"
echo "Published: ${image_type}:$1"
done
rm $outfile
}
build_docker_images() {
build_octo_cli_docker_image "$octo_cli_docker"
build_octopod_server_docker_image "$migrations" "$octopod_server_docker"
}
export tag=$(git rev-parse HEAD)
export migrations="./migrations"
export octo_cli_docker="octo-docker"
export octopod_server_docker="octopod-server-docker"
case "$1" in
build-and-push)
echo "$1 mode"
if test -z "$2"
then
echo "Please provide a tag to upload to"
exit 1
fi
build_docker_images
push_docker_images $2
;;
build)
echo "$1 mode"
build_docker_images
;;
*)
echo "usage:"
echo " $0 build Builds the docker images."
echo " $0 build-and-push <tag> Builds the docker images and uploads it to Docker Hub under the tag <tag>."
exit 1
;;
esac