-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.docker
More file actions
executable file
·53 lines (40 loc) · 1.64 KB
/
build.docker
File metadata and controls
executable file
·53 lines (40 loc) · 1.64 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
#!/usr/bin/env python3
import subprocess
import argparse
import json
from robotdevenv.component import RobotDevComponent as Component
from robotdevenv.robot import RobotDevRobot as Robot
from robotdevenv.docker import RobotDevDockerHandler as DockerHandler
from robotdevenv.docker import BuildImageType
class RobotDevBuildDockerError(Exception): pass
def build_component():
parser = argparse.ArgumentParser()
robot = Robot(parser=parser)
component = Component(parser=parser, robot=robot)
docker_handler = DockerHandler(component, robot)
print()
print('🤖🤖 UR ROBOT DEVELOPMENT ENVIRONMENT 🤖🤖')
print(' 🦾 Build docker images 🦿')
print()
print(f'📦📦 Component: {component.full_name}')
print(f'🤖🤖 Robot: {robot.name}')
print()
parser.add_argument('-p', '--prod', action='store_true')
parser.add_argument('-d', '--debug', action='store_true')
parser.add_argument('-v', '--verbose', action='store_true')
args = dict(parser.parse_known_args()[0]._get_kwargs())
build_type = BuildImageType.PROD if args['prod'] else BuildImageType.DEVEL
debug_enable = args['debug']
verbose = args['verbose']
metadata = {
'REPO_NAME': component.repo_name,
'COMPONENT_NAME': component.name,
'REPO_METADATA': json.dumps(component.repo_manifest),
'COMPONENT_METADATA': json.dumps(component.component_desc),
'DEBUG_ENABLE': debug_enable,
}
docker_handler.build_image(
build_type=build_type, metadata=metadata, verbose=verbose,
)
if __name__ == "__main__":
build_component()