Skip to content

Commit e2ab948

Browse files
committed
Add javaHome.py setup script, add resources/zoo.cfg Apache ZooKeeper configuration file. Attempt to making this Docker Pipeline Codebase Cross-Platform & capable of scaling, update all dev modules and their implementations, perform tests, fix bugs, perform local pipeline runtime tests. Have top dev compose file including modular compose configurations
1 parent 4ef2dfb commit e2ab948

File tree

20 files changed

+420
-243
lines changed

20 files changed

+420
-243
lines changed

docker/compose/Dockerfile

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@
33
ARG BASE_IMAGE=mcr.microsoft.com/windows/servercore:ltsc2022
44

55
ARG THIS_PROJECT_WORKING_DIRECTORY="C:\docker"
6-
ARG THIS_PROJECT_NABLA_DIRECTORY="C:/Users/ContainerAdministrator/Nabla/repository"
7-
ARG THIS_PROJECT_ARTIFACTORY_NABLA_DIRECTORY="C:/Users/ContainerAdministrator/Nabla/artifactory"
86
ARG THIS_PROJECT_DOCKER_BIND_DIRECTORY="C:/Users/ContainerAdministrator/Nabla/docker"
97
ARG VULKAN_SDK_INSTALL_DIRECTORY="${THIS_PROJECT_WORKING_DIRECTORY}\dependencies\VulkanSDK"
108
ARG VS_INSTALL_DIRECTORY="${THIS_PROJECT_WORKING_DIRECTORY}\dependencies\VS\BuildTools"
119
ARG APACHE_ZOOKEEPER_INSTALL_DIRECTORY="${THIS_PROJECT_WORKING_DIRECTORY}\dependencies\ApacheZooKeeper"
10+
ARG JAVA_HOME_SCRIPT="${THIS_PROJECT_WORKING_DIRECTORY}\dependencies\scripts\java"
1211
ARG VS_DEV_CMD_DIRECTORY="${VS_INSTALL_DIRECTORY}\Common7\Tools"
1312

1413
FROM ${BASE_IMAGE}
@@ -102,14 +101,12 @@ RUN `
102101
`
103102
&& del /q zookeeper.zip `
104103
`
105-
# Add KAZOO_HOME environment variable
106-
`
107-
&& setx KAZOO_HOME "%APACHE_ZOOKEEPER_INSTALL_DIRECTORY%" /M
104+
&& setx PATH "%PATH%;%APACHE_ZOOKEEPER_INSTALL_DIRECTORY%\apache-zookeeper-3.8.3-bin\bin" /M
108105

109106
RUN `
110-
# Donwload kazoo Python module
107+
# Download kazoo Python 2.8.0 (more recent versions doesn't work well with Windows) module
111108
`
112-
python -m pip install --upgrade kazoo
109+
python -m pip install kazoo==2.8.0
113110

114111
RUN `
115112
# Download OpenJDK 11 LTS
@@ -131,17 +128,6 @@ ARG THIS_PROJECT_WORKING_DIRECTORY
131128
RUN `
132129
setx THIS_PROJECT_WORKING_DIRECTORY "%THIS_PROJECT_WORKING_DIRECTORY%" /M
133130

134-
ARG THIS_PROJECT_NABLA_DIRECTORY
135-
136-
RUN `
137-
setx THIS_PROJECT_NABLA_DIRECTORY "%THIS_PROJECT_NABLA_DIRECTORY%" /M `
138-
&& mkdir "%THIS_PROJECT_NABLA_DIRECTORY%"
139-
140-
ARG THIS_PROJECT_ARTIFACTORY_NABLA_DIRECTORY
141-
142-
RUN `
143-
setx THIS_PROJECT_ARTIFACTORY_NABLA_DIRECTORY "%THIS_PROJECT_ARTIFACTORY_NABLA_DIRECTORY%" /M
144-
145131
ARG THIS_PROJECT_DOCKER_BIND_DIRECTORY
146132

147133
RUN `
@@ -150,6 +136,15 @@ RUN `
150136

151137
RUN `
152138
git config --system --add safe.directory *
139+
140+
ARG JAVA_HOME_SCRIPT
141+
142+
COPY scripts\os\javaHome.py ${JAVA_HOME_SCRIPT}\javaHome.py
143+
144+
RUN `
145+
py "%JAVA_HOME_SCRIPT%\javaHome.py"
146+
147+
COPY scripts\os\resources\zoo.cfg ${APACHE_ZOOKEEPER_INSTALL_DIRECTORY}\apache-zookeeper-3.8.3-bin\conf\zoo.cfg
153148

154149
ARG VS_DEV_CMD_DIRECTORY
155150

docker/compose/ci/.env

Lines changed: 0 additions & 7 deletions
This file was deleted.

docker/compose/ci/stages/.env/.env renamed to docker/compose/ci/stages/.env/platform/windows/.env

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
THIS_PROJECT_PLATFORM=windows
2+
THIS_PROJECT_BASE_IMAGE=artifactory.devsh.eu/nabla/${THIS_PROJECT_PLATFORM}/base:latest
3+
THIS_PROJECT_ARCH=x86_64
14
THIS_PROJECT_WORKING_DIRECTORY="C:\docker"
25
THIS_PROJECT_NABLA_DIRECTORY="C:/Users/ContainerAdministrator/Nabla/repository"
36
THIS_PROJECT_ARTIFACTORY_NABLA_DIRECTORY="C:/Users/ContainerAdministrator/Nabla/artifactory"

docker/compose/ci/stages/dev/build/compose.yml

Lines changed: 65 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
version: '3'
22

33
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
4+
nabla.build.static.release:
5+
image: ${THIS_PROJECT_BASE_IMAGE}
6+
container_name: dev.nabla.build.static.release.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
7+
hostname: dev.nabla.build.static.release.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
8+
env_file:
9+
- ../.env/platform/${THIS_PROJECT_PLATFORM}/.env
10+
networks:
11+
nabla.network:
1012
depends_on:
11-
nabla.cmake.static.x86_64:
13+
nabla.cmake.static:
1214
condition: service_completed_successfully
1315
volumes:
1416
- type: volume
@@ -18,18 +20,20 @@ services:
1820
source: ssh
1921
target: ${THIS_PROJECT_SSH_DIRECTORY}
2022
- type: bind
21-
source: ../../../../../
23+
source: ../../../../
2224
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
2325
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
26+
nabla.build.static.relwithdebinfo:
27+
image: ${THIS_PROJECT_BASE_IMAGE}
28+
container_name: dev.nabla.build.static.relwithdebinfo.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
29+
hostname: dev.nabla.build.static.relwithdebinfo.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
30+
env_file:
31+
- ../.env/platform/${THIS_PROJECT_PLATFORM}/.env
32+
networks:
33+
nabla.network:
2834
depends_on:
29-
nabla.cmake.static.x86_64:
35+
nabla.cmake.static:
3036
condition: service_completed_successfully
31-
env_file:
32-
- ../../.env/.env
3337
volumes:
3438
- type: volume
3539
source: nabla.repository
@@ -38,18 +42,20 @@ services:
3842
source: ssh
3943
target: ${THIS_PROJECT_SSH_DIRECTORY}
4044
- type: bind
41-
source: ../../../../../
45+
source: ../../../../
4246
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
4347
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+
nabla.build.static.debug:
49+
image: ${THIS_PROJECT_BASE_IMAGE}
50+
container_name: dev.nabla.build.static.debug.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
51+
hostname: dev.nabla.build.static.debug.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
52+
env_file:
53+
- ../.env/platform/${THIS_PROJECT_PLATFORM}/.env
54+
networks:
55+
nabla.network:
4856
depends_on:
49-
nabla.cmake.static.x86_64:
57+
nabla.cmake.static:
5058
condition: service_completed_successfully
51-
env_file:
52-
- ../../.env/.env
5359
volumes:
5460
- type: volume
5561
source: nabla.repository
@@ -58,18 +64,20 @@ services:
5864
source: ssh
5965
target: ${THIS_PROJECT_SSH_DIRECTORY}
6066
- type: bind
61-
source: ../../../../../
67+
source: ../../../../
6268
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
6369
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
70+
nabla.build.dynamic.release:
71+
image: ${THIS_PROJECT_BASE_IMAGE}
72+
container_name: dev.nabla.build.dynamic.release.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
73+
hostname: dev.nabla.build.dynamic.release.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
74+
env_file:
75+
- ../.env/platform/${THIS_PROJECT_PLATFORM}/.env
76+
networks:
77+
nabla.network:
6878
depends_on:
69-
nabla.cmake.dynamic.x86_64:
79+
nabla.cmake.dynamic:
7080
condition: service_completed_successfully
71-
env_file:
72-
- ../../.env/.env
7381
volumes:
7482
- type: volume
7583
source: nabla.repository
@@ -78,18 +86,20 @@ services:
7886
source: ssh
7987
target: ${THIS_PROJECT_SSH_DIRECTORY}
8088
- type: bind
81-
source: ../../../../../
89+
source: ../../../../
8290
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
8391
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
92+
nabla.build.dynamic.relwithdebinfo:
93+
image: ${THIS_PROJECT_BASE_IMAGE}
94+
container_name: dev.nabla.build.dynamic.relwithdebinfo.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
95+
hostname: dev.nabla.build.dynamic.relwithdebinfo.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
96+
env_file:
97+
- ../.env/platform/${THIS_PROJECT_PLATFORM}/.env
98+
networks:
99+
nabla.network:
88100
depends_on:
89-
nabla.cmake.dynamic.x86_64:
101+
nabla.cmake.dynamic:
90102
condition: service_completed_successfully
91-
env_file:
92-
- ../../.env/.env
93103
volumes:
94104
- type: volume
95105
source: nabla.repository
@@ -98,18 +108,20 @@ services:
98108
source: ssh
99109
target: ${THIS_PROJECT_SSH_DIRECTORY}
100110
- type: bind
101-
source: ../../../../../
111+
source: ../../../../
102112
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
103113
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
114+
nabla.build.dynamic.debug:
115+
image: ${THIS_PROJECT_BASE_IMAGE}
116+
container_name: dev.nabla.build.dynamic.debug.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
117+
hostname: dev.nabla.build.dynamic.debug.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
118+
env_file:
119+
- ../.env/platform/${THIS_PROJECT_PLATFORM}/.env
120+
networks:
121+
nabla.network:
108122
depends_on:
109-
nabla.cmake.dynamic.x86_64:
123+
nabla.cmake.dynamic:
110124
condition: service_completed_successfully
111-
env_file:
112-
- ../../.env/.env
113125
volumes:
114126
- type: volume
115127
source: nabla.repository
@@ -118,9 +130,14 @@ services:
118130
source: ssh
119131
target: ${THIS_PROJECT_SSH_DIRECTORY}
120132
- type: bind
121-
source: ../../../../../
133+
source: ../../../../
122134
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
123135
entrypoint: ["ncpfmp.bat", "nbl.ci.dev.build", "--config", "Debug", "--libType", "dynamic"]
136+
137+
networks:
138+
nabla.network:
139+
external: true
140+
124141
volumes:
125142
nabla.repository:
126143
external: true
Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
version: '3'
22

33
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
4+
nabla.checkout:
5+
image: ${THIS_PROJECT_BASE_IMAGE}
6+
container_name: dev.nabla.checkout.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
7+
hostname: dev.nabla.checkout
8+
env_file:
9+
- ../.env/platform/${THIS_PROJECT_PLATFORM}/.env
10+
networks:
11+
nabla.network:
812
depends_on:
9-
nabla.kazoo.server.windows:
13+
nabla.kazoo.server:
1014
condition: service_healthy
11-
env_file:
12-
- ../../.env/.env
1315
volumes:
1416
- type: volume
1517
source: nabla.repository
@@ -18,11 +20,16 @@ services:
1820
source: ssh
1921
target: ${THIS_PROJECT_SSH_DIRECTORY}
2022
- type: bind
21-
source: ../../../../../
23+
source: ../../../../
2224
target: ${THIS_PROJECT_DOCKER_BIND_DIRECTORY}
2325
entrypoint: ["ncpfmp.bat", "nbl.ci.dev.checkout"]
26+
27+
networks:
28+
nabla.network:
29+
external: true
30+
2431
volumes:
2532
nabla.repository:
2633
external: true
2734
ssh:
28-
external: true
35+
external: true

docker/compose/ci/stages/dev/cmake/compose.yml

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
version: '3'
22

33
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
4+
nabla.cmake.static:
5+
image: ${THIS_PROJECT_BASE_IMAGE}
6+
container_name: dev.nabla.cmake.static.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
7+
hostname: dev.nabla.cmake.static.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
8+
env_file:
9+
- ../.env/platform/${THIS_PROJECT_PLATFORM}/.env
10+
networks:
11+
nabla.network:
1012
depends_on:
11-
nabla.submodules.x86_64.windows:
13+
nabla.submodules:
1214
condition: service_completed_successfully
1315
volumes:
1416
- type: volume
@@ -18,18 +20,20 @@ services:
1820
source: ssh
1921
target: ${THIS_PROJECT_SSH_DIRECTORY}
2022
- type: bind
21-
source: ../../../../../
23+
source: ../../../../
2224
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
25+
entrypoint: ["ncpfmp.bat", "nbl.ci.dev.cmake", "--libType", "static"]
26+
nabla.cmake.dynamic:
27+
image: ${THIS_PROJECT_BASE_IMAGE}
28+
container_name: dev.nabla.cmake.dynamic.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
29+
hostname: dev.nabla.cmake.dynamic.${THIS_PROJECT_ARCH}.${THIS_PROJECT_PLATFORM}
30+
env_file:
31+
- ../.env/platform/${THIS_PROJECT_PLATFORM}/.env
32+
networks:
33+
nabla.network:
2834
depends_on:
29-
nabla.submodules.x86_64.windows:
35+
nabla.submodules:
3036
condition: service_completed_successfully
31-
env_file:
32-
- ../../.env/.env
3337
volumes:
3438
- type: volume
3539
source: nabla.repository
@@ -38,11 +42,14 @@ services:
3842
source: ssh
3943
target: ${THIS_PROJECT_SSH_DIRECTORY}
4044
- type: bind
41-
source: ../../../../../
45+
source: ../../../../
4246
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"]
47+
entrypoint: ["ncpfmp.bat", "nbl.ci.dev.cmake", "--libType", "dynamic"]
48+
49+
networks:
50+
nabla.network:
51+
external: true
52+
4653
volumes:
4754
nabla.repository:
4855
external: true
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
include:
2+
- path:
3+
- init/compose.yml
4+
- kazoo/compose.yml
5+
- checkout/compose.yml
6+
- submodules/compose.yml
7+
- cmake/compose.yml
8+
- build/compose.yml
9+
- cpack/compose.yml
10+
project_directory: .
11+
env_file: ../.env/platform/windows/.env

0 commit comments

Comments
 (0)