Home of Test Results Summary Service (TRSS) and PerfNext. These tools are designed to improve our ability to monitor and triage tests at the Adoptium project. The code is generic enough that it is extensible for use by any project that needs to monitor multiple CI servers and aggregate their results.
Docker Compose is a tool used to define and run multi-container Docker applications. We only have it for users to try TRSS.
However, our production server is still manually configured/set up. I recently had to migrate TRSS to a new machine and it was lots of manual work. Most of which could be automated via docker compose. We should enhance docker compose in TRSS for production and PR builds. It can be beneficial for us for several reasons: easy deployment, consistent environments, scalability, version control, etc. Overall, it can help improve the reliability and maintainability of TRSS.
Proposal
We should support 3 use cases:
dev
production
PR builds
In order to make this modular, we should break TRSS into 5 services:
mongo
mongo-seed (sample data)
server (TRSS server)
client (TRSS client)
nginx
The service profile is used to help us to adjust for different use cases:
mongo, server, client, and nginx with mongo-seed (port 4000) - dev, PR builds
mongo, server, client, and nginx without mongo-seed (port 4000) - dev, PR builds
mongo, server, client, and nginx without mongo-seed (port 80) - production
client only and connect to Adoptium server (port 3000) (similar to existing PR build via Netilify) - dev, PR builds
Details
To simplify the user cmd, npm script can be used for short cmd:
Run npm run docker to have mongo, server, client, and nginx up for production, dev or PR builds
Run npm run docker-data to have mongo, server, client, and nginx with sample data imported.
Run npm run docker-ui for the client only and connect to Adoptium TRSS server
A special configuration is needed to export the privileged port. To keep this simple, we will use port 4000 (not 80) for dev or PR builds. For production, another nginx is used (on the machine) to map 80 to 4000 (just two lines in config).
MongoDB data is output to dir on the machine (i.e., ./mongo/data). This will make backup data easy if needed.
Motivation
Docker Compose is a tool used to define and run multi-container Docker applications. We only have it for users to try TRSS.
However, our production server is still manually configured/set up. I recently had to migrate TRSS to a new machine and it was lots of manual work. Most of which could be automated via docker compose. We should enhance docker compose in TRSS for production and PR builds. It can be beneficial for us for several reasons: easy deployment, consistent environments, scalability, version control, etc. Overall, it can help improve the reliability and maintainability of TRSS.
Proposal
We should support 3 use cases:
In order to make this modular, we should break TRSS into 5 services:
The service profile is used to help us to adjust for different use cases:
Details
npm run docker
to have mongo, server, client, and nginx up for production, dev or PR buildsnpm run docker-data
to have mongo, server, client, and nginx with sample data imported.npm run docker-ui
for the client only and connect to Adoptium TRSS server