Skip to content

Commit 4ef2dfb

Browse files
committed
Reorganize services and group them all into separate stages, each service corresponds to a groovy stage now. Split python build.py into modules, update proxy script. Create docker compose dependency chains between services. Add Kazoo Apache Keeper Server for atomic operations between containers, implement kazoo.py and integrate into cluster. Create healthy checks granting proper service policy executions. Update Dockerfile, begin performing tests
1 parent 5302b2e commit 4ef2dfb

File tree

25 files changed

+866
-334
lines changed

25 files changed

+866
-334
lines changed

docker/platform/windows/compose/Dockerfile renamed to docker/compose/Dockerfile

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ ARG THIS_PROJECT_ARTIFACTORY_NABLA_DIRECTORY="C:/Users/ContainerAdministrator/Na
88
ARG THIS_PROJECT_DOCKER_BIND_DIRECTORY="C:/Users/ContainerAdministrator/Nabla/docker"
99
ARG VULKAN_SDK_INSTALL_DIRECTORY="${THIS_PROJECT_WORKING_DIRECTORY}\dependencies\VulkanSDK"
1010
ARG VS_INSTALL_DIRECTORY="${THIS_PROJECT_WORKING_DIRECTORY}\dependencies\VS\BuildTools"
11+
ARG APACHE_ZOOKEEPER_INSTALL_DIRECTORY="${THIS_PROJECT_WORKING_DIRECTORY}\dependencies\ApacheZooKeeper"
1112
ARG VS_DEV_CMD_DIRECTORY="${VS_INSTALL_DIRECTORY}\Common7\Tools"
1213

1314
FROM ${BASE_IMAGE}
@@ -74,13 +75,47 @@ RUN `
7475

7576
RUN `
7677
# Donwload debugpy Python module
78+
`
7779
python -m pip install --upgrade debugpy
7880

7981
RUN `
8082
# Download & install git 2.43.0
8183
`
8284
choco install -y git --version 2.43.0
8385

86+
ARG APACHE_ZOOKEEPER_INSTALL_DIRECTORY
87+
88+
RUN `
89+
# Download Apache ZooKeeper
90+
`
91+
curl -SL --output zookeeper.zip https://dlcdn.apache.org/zookeeper/zookeeper-3.8.3/apache-zookeeper-3.8.3-bin.tar.gz `
92+
`
93+
# Create install directory
94+
`
95+
&& mkdir "%APACHE_ZOOKEEPER_INSTALL_DIRECTORY%" `
96+
`
97+
# Unpack
98+
`
99+
&& tar -xf zookeeper.zip -C "%APACHE_ZOOKEEPER_INSTALL_DIRECTORY%" `
100+
`
101+
# Cleanup
102+
`
103+
&& del /q zookeeper.zip `
104+
`
105+
# Add KAZOO_HOME environment variable
106+
`
107+
&& setx KAZOO_HOME "%APACHE_ZOOKEEPER_INSTALL_DIRECTORY%" /M
108+
109+
RUN `
110+
# Donwload kazoo Python module
111+
`
112+
python -m pip install --upgrade kazoo
113+
114+
RUN `
115+
# Download OpenJDK 11 LTS
116+
`
117+
choco install -y openjdk11
118+
84119
RUN `
85120
# Download & install nasm 2.16.1
86121
`
@@ -111,7 +146,7 @@ ARG THIS_PROJECT_DOCKER_BIND_DIRECTORY
111146

112147
RUN `
113148
setx THIS_PROJECT_DOCKER_BIND_DIRECTORY "%THIS_PROJECT_DOCKER_BIND_DIRECTORY%" /M `
114-
&& setx PATH "%PATH%;%THIS_PROJECT_DOCKER_BIND_DIRECTORY%/platform/windows/scripts" /M
149+
&& setx PATH "%PATH%;%THIS_PROJECT_DOCKER_BIND_DIRECTORY%/scripts" /M
115150

116151
RUN `
117152
git config --system --add safe.directory *
@@ -121,4 +156,4 @@ ARG VS_DEV_CMD_DIRECTORY
121156
RUN `
122157
setx PATH "%PATH%;%VS_DEV_CMD_DIRECTORY%" /M
123158

124-
ENTRYPOINT ["VsDevCmd.bat", "&&", "powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]
159+
ENTRYPOINT ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]
File renamed without changes.
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1+
THIS_PROJECT_WORKING_DIRECTORY="C:\docker"
2+
THIS_PROJECT_NABLA_DIRECTORY="C:/Users/ContainerAdministrator/Nabla/repository"
13
THIS_PROJECT_ARTIFACTORY_NABLA_DIRECTORY="C:/Users/ContainerAdministrator/Nabla/artifactory"
24
THIS_PROJECT_DOCKER_BIND_DIRECTORY="C:/Users/ContainerAdministrator/Nabla/docker"
5+
NABLA_TARGET_REVISION="docker"
36
THIS_PROJECT_SSH_DIRECTORY="C:/Users/ContainerAdministrator/.ssh"
4-
BUILD_SCRIPT_ARGS="--debug=False"
7+
THIS_PROJECT_DEBUG=""
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
version: '3'
2+
3+
services:
4+
nabla.build.static.release.x86_64:
5+
image: artifactory.devsh.eu/nabla/windows/base:latest
6+
container_name: dev.nabla.build.static.release.x86_64.windows
7+
hostname: dev.nabla.build.static.release.x86_64.windows
8+
env_file:
9+
- ../../.env/.env
10+
depends_on:
11+
nabla.cmake.static.x86_64:
12+
condition: service_completed_successfully
13+
volumes:
14+
- type: volume
15+
source: nabla.repository
16+
target: ${THIS_PROJECT_NABLA_DIRECTORY}
17+
- type: volume
18+
source: ssh
19+
target: ${THIS_PROJECT_SSH_DIRECTORY}
20+
- type: bind
21+
source: ../../../../../
22+
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
23+
entrypoint: ["ncpfmp.bat", "nbl.ci.dev.build", "--config", "Release", "--libType", "static"]
24+
nabla.build.static.relwithdebinfo.x86_64:
25+
image: artifactory.devsh.eu/nabla/windows/base:latest
26+
container_name: dev.nabla.build.static.relwithdebinfo.x86_64.windows
27+
hostname: dev.nabla.build.static.relwithdebinfo.x86_64.windows
28+
depends_on:
29+
nabla.cmake.static.x86_64:
30+
condition: service_completed_successfully
31+
env_file:
32+
- ../../.env/.env
33+
volumes:
34+
- type: volume
35+
source: nabla.repository
36+
target: ${THIS_PROJECT_NABLA_DIRECTORY}
37+
- type: volume
38+
source: ssh
39+
target: ${THIS_PROJECT_SSH_DIRECTORY}
40+
- type: bind
41+
source: ../../../../../
42+
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
43+
entrypoint: ["ncpfmp.bat", "nbl.ci.dev.build", "--config", "RelWithDebInfo", "--libType", "static"]
44+
nabla.build.static.debug.x86_64:
45+
image: artifactory.devsh.eu/nabla/windows/base:latest
46+
container_name: dev.nabla.build.static.debug.x86_64.windows
47+
hostname: dev.nabla.build.static.debug.x86_64.windows
48+
depends_on:
49+
nabla.cmake.static.x86_64:
50+
condition: service_completed_successfully
51+
env_file:
52+
- ../../.env/.env
53+
volumes:
54+
- type: volume
55+
source: nabla.repository
56+
target: ${THIS_PROJECT_NABLA_DIRECTORY}
57+
- type: volume
58+
source: ssh
59+
target: ${THIS_PROJECT_SSH_DIRECTORY}
60+
- type: bind
61+
source: ../../../../../
62+
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
63+
entrypoint: ["ncpfmp.bat", "nbl.ci.dev.build", "--config", "Debug", "--libType", "static"]
64+
nabla.build.dynamic.release.x86_64:
65+
image: artifactory.devsh.eu/nabla/windows/base:latest
66+
container_name: dev.nabla.build.dynamic.release.x86_64.windows
67+
hostname: dev.nabla.build.dynamic.release.x86_64.windows
68+
depends_on:
69+
nabla.cmake.dynamic.x86_64:
70+
condition: service_completed_successfully
71+
env_file:
72+
- ../../.env/.env
73+
volumes:
74+
- type: volume
75+
source: nabla.repository
76+
target: ${THIS_PROJECT_NABLA_DIRECTORY}
77+
- type: volume
78+
source: ssh
79+
target: ${THIS_PROJECT_SSH_DIRECTORY}
80+
- type: bind
81+
source: ../../../../../
82+
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
83+
entrypoint: ["ncpfmp.bat", "nbl.ci.dev.build", "--config", "Release", "--libType", "dynamic"]
84+
nabla.build.dynamic.relwithdebinfo.x86_64:
85+
image: artifactory.devsh.eu/nabla/windows/base:latest
86+
container_name: dev.nabla.build.dynamic.relwithdebinfo.x86_64.windows
87+
hostname: dev.nabla.build.dynamic.relwithdebinfo.x86_64.windows
88+
depends_on:
89+
nabla.cmake.dynamic.x86_64:
90+
condition: service_completed_successfully
91+
env_file:
92+
- ../../.env/.env
93+
volumes:
94+
- type: volume
95+
source: nabla.repository
96+
target: ${THIS_PROJECT_NABLA_DIRECTORY}
97+
- type: volume
98+
source: ssh
99+
target: ${THIS_PROJECT_SSH_DIRECTORY}
100+
- type: bind
101+
source: ../../../../../
102+
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
103+
entrypoint: ["ncpfmp.bat", "nbl.ci.dev.build", "--config", "RelWithDebInfo", "--libType", "dynamic"]
104+
nabla.build.dynamic.debug.x86_64:
105+
image: artifactory.devsh.eu/nabla/windows/base:latest
106+
container_name: dev.nabla.build.dynamic.debug.x86_64.windows
107+
hostname: dev.nabla.build.dynamic.debug.x86_64.windows
108+
depends_on:
109+
nabla.cmake.dynamic.x86_64:
110+
condition: service_completed_successfully
111+
env_file:
112+
- ../../.env/.env
113+
volumes:
114+
- type: volume
115+
source: nabla.repository
116+
target: ${THIS_PROJECT_NABLA_DIRECTORY}
117+
- type: volume
118+
source: ssh
119+
target: ${THIS_PROJECT_SSH_DIRECTORY}
120+
- type: bind
121+
source: ../../../../../
122+
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
123+
entrypoint: ["ncpfmp.bat", "nbl.ci.dev.build", "--config", "Debug", "--libType", "dynamic"]
124+
volumes:
125+
nabla.repository:
126+
external: true
127+
ssh:
128+
external: true
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
version: '3'
2+
3+
services:
4+
nabla.checkout.x86_64:
5+
image: artifactory.devsh.eu/nabla/windows/base:latest
6+
container_name: dev.nabla.checkout.x86_64.windows
7+
hostname: dev.nabla.checkout.windows
8+
depends_on:
9+
nabla.kazoo.server.windows:
10+
condition: service_healthy
11+
env_file:
12+
- ../../.env/.env
13+
volumes:
14+
- type: volume
15+
source: nabla.repository
16+
target: ${THIS_PROJECT_NABLA_DIRECTORY}
17+
- type: volume
18+
source: ssh
19+
target: ${THIS_PROJECT_SSH_DIRECTORY}
20+
- type: bind
21+
source: ../../../../../
22+
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
23+
entrypoint: ["ncpfmp.bat", "nbl.ci.dev.checkout"]
24+
volumes:
25+
nabla.repository:
26+
external: true
27+
ssh:
28+
external: true
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
version: '3'
2+
3+
services:
4+
nabla.cmake.static.x86_64:
5+
image: artifactory.devsh.eu/nabla/windows/base:latest
6+
container_name: dev.nabla.cmake.static.x86_64.windows
7+
hostname: dev.nabla.cmake.static.x86_64.windows
8+
env_file:
9+
- ../../.env/.env
10+
depends_on:
11+
nabla.submodules.x86_64.windows:
12+
condition: service_completed_successfully
13+
volumes:
14+
- type: volume
15+
source: nabla.repository
16+
target: ${THIS_PROJECT_NABLA_DIRECTORY}
17+
- type: volume
18+
source: ssh
19+
target: ${THIS_PROJECT_SSH_DIRECTORY}
20+
- type: bind
21+
source: ../../../../../
22+
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
23+
entrypoint: ["ncpfmp.bat", "nbl.ci.dev.cmake", "--arch", "x86_64", "--libType", "static"]
24+
nabla.cmake.dynamic.x86_64:
25+
image: artifactory.devsh.eu/nabla/windows/base:latest
26+
container_name: dev.nabla.cmake.dynamic.x86_64.windows
27+
hostname: dev.nabla.cmake.dynamic.x86_64.windows
28+
depends_on:
29+
nabla.submodules.x86_64.windows:
30+
condition: service_completed_successfully
31+
env_file:
32+
- ../../.env/.env
33+
volumes:
34+
- type: volume
35+
source: nabla.repository
36+
target: ${THIS_PROJECT_NABLA_DIRECTORY}
37+
- type: volume
38+
source: ssh
39+
target: ${THIS_PROJECT_SSH_DIRECTORY}
40+
- type: bind
41+
source: ../../../../../
42+
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
43+
environment:
44+
- BUILD_SCRIPT_ARGS=${BUILD_SCRIPT_ARGS}
45+
entrypoint: ["ncpfmp.bat", "nbl.ci.dev.cmake", "--arch", "x86_64", "--libType", "dynamic"]
46+
volumes:
47+
nabla.repository:
48+
external: true
49+
ssh:
50+
external: true

0 commit comments

Comments
 (0)