You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+7-1Lines changed: 7 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,10 +9,16 @@ This catalog contains the config data for the tests run in https://testing.stack
9
9
*[platforms.yaml](catalog/platforms.yaml) contains the definition of the test system vendors and platforms
10
10
*[operator-tests.yaml](catalog/operator-tests.yaml) defines the integration tests for our operators
11
11
12
+
See this [Nuclino page](https://app.nuclino.com/Stackable/Engineering/Configuring-Test-Jobs-4e993d84-19b4-4081-846d-738f9f38573d) for further information.
13
+
12
14
## Apps
13
15
14
-
Under [apps/](apps/), we maintain a bunch of Dockerized applications for the maintenance of Jenkins and to run the tests.
16
+
Under [apps/](apps/README.md), we maintain a bunch of Dockerized applications for the maintenance of Jenkins and to run the tests.
15
17
16
18
## Seed Job
17
19
18
20
The [seed job pipeline](jenkins/jobbuilder.groovy) to populate the Jenkins
21
+
22
+
## Tools
23
+
24
+
The [tools folder](tools/) contains Dockerized tools to be run in the maintenance jobs. They are not strictly related to testing, but found their home here because this is the only Jenkins we have.
For running our testing platform, we need to perform complex jobs in Jenkins. These jobs are coded in Dockerized apps. As they have common tasks, we maintain a shared codebase for these apps and build different Docker images for them.
4
+
5
+
## The Apps
6
+
7
+
We have these two apps:
8
+
9
+
***Jenkins Job Builder** is a "seed job" which (re)creates all the jobs in our Jenkins.
10
+
***Operator Test Runner** is an app which creates/terminates K8s clusters and runs operator integration tests in them.
11
+
12
+
## Project Structure
13
+
14
+
The code is documented inline, here's the project structure:
15
+
16
+
*[docker/](docker/) contains the Docker build resources (`Dockerfile` + ...) for the apps
17
+
*[jjb/](jjb/) contains the templates for the jobs for the **Jenkins Job Builder** app.
18
+
*[src/](src/) contains the Python sources.
19
+
*[src/modules/](src/modules/) contains the common Python modules of this project
20
+
*[jenkins-job-builer.py](src/jenkins-job-builder.py) is the main program of the **Jenkins Job Builder** app.
21
+
*[operator-test-runner.py](src/operator-test-runner.py) is the main program of the **Operator Test Runner** app.
22
+
*[build.sh](build.sh) lets you build the Docker images locally.
23
+
24
+
## Build process
25
+
26
+
The [seed job](../jenkins/jobbuilder.groovy) which is created during Jenkins setup and executed every 5 minutes does build the apps as Docker images inside the Jenkins. They are tagged as `latest` and used by the Jenkins jobs, so every code change pushed to the `main` branch is reflected in near-real-time. No external Docker image registry like Nexus or Harbor is needed here.
0 commit comments