-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild_image_segment_update_worker.py
More file actions
executable file
·63 lines (54 loc) · 2.03 KB
/
build_image_segment_update_worker.py
File metadata and controls
executable file
·63 lines (54 loc) · 2.03 KB
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
#!/usr/bin/env python3
# pylint: disable=missing-docstring,line-too-long
import argparse
import subprocess
BUILD_COMMAND_TMPL = (
"docker build --platform linux/amd64 --network=host "
"-t {REGION}-docker.pkg.dev/{PROJECT}/{REPO}/segment_update_worker:{TAG} "
"-f zetta_utils/task_management/automated_workers/Dockerfile.segment_update_worker ."
)
PUSH_COMMAND_TMPL = (
"docker push {REGION}-docker.pkg.dev/{PROJECT}/{REPO}/segment_update_worker:{TAG}"
)
def main():
parser = argparse.ArgumentParser(
description="Build and push Skeleton Update Worker docker image."
)
parser.add_argument("--project", type=str, required=True, help="GCP project.")
parser.add_argument("--tag", "-t", type=str, required=True, help="Image tag name/version.")
parser.add_argument(
"--region", type=str, default="us-east1", help="Artifact Registry region."
)
parser.add_argument(
"--repo", type=str, default="zutils", help="Artifact Registry repo name."
)
args = parser.parse_args()
build_command = (
BUILD_COMMAND_TMPL.replace("{TAG}", args.tag)
.replace("{PROJECT}", args.project)
.replace("{REGION}", args.region)
.replace("{REPO}", args.repo)
)
print(f"Running: \n{build_command}")
if subprocess.call(build_command, shell=True) != 0:
print("Build failed, exiting.")
return
push_command = (
PUSH_COMMAND_TMPL.replace("{TAG}", args.tag)
.replace("{PROJECT}", args.project)
.replace("{REGION}", args.region)
.replace("{REPO}", args.repo)
)
print(f"Running: \n{push_command}")
if subprocess.call(push_command, shell=True) != 0:
print("Push failed, exiting.")
return
print(f"\nAdding git tag segment_update_worker_{args.tag}.")
if subprocess.call(
f"git tag segment_update_worker_{args.tag} && git push origin segment_update_worker_{args.tag}",
shell=True,
) != 0:
print("Git tagging failed, exiting.")
return
if __name__ == "__main__":
main()