CI / CD Updates / Project Code Organization -- Multi-Repo attempt #2 #12621
DanVanAtta
started this conversation in
General
Replies: 1 comment
-
I like the proposal! |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I'm trying to overhaul/fix the CI/CD a little bit. Wanted to open this discussion for suggestions and to kindly please call out the bad ideas
The overall approach is multi-repo. Perhaps this is best explained by noting the repositories, their themes, and what happens as part of their "main build output" (ie: which artifacts and outcomes happen after 'master' branch is updated).
Infrastructure
This repo sets up the servers. That means:
When master is updated:
triplea-game/triplea
In this config, we can potentially turn on parallel junit test execution & get some good speedups. The tests with database were a big reason why parallel junit tests did not work, and those tests will no longer be in this repo and therefore not an issue.
Lobby-server
Java code base for lobby server. Has JAR dependency on
triplea-game/triplea
. Requires developers to set up a github access token and a~/.gradle/gradle.properties
file with the access token.When master is updated:
Other Repositories
After the above 3 are well established, we'll be at a pretty good milestone. From there, I'm thinking a few more repositories...
Game Support Server
The 'support-server' would have the following endpoints:
Forums
Just be the docker stuff for forums. When master is updated, ideally we publish a docker image & update forums to start running that update (ideally the latter part will be a simply service restart, or invoke an action in the
infrastructure
repository to do a docker-pull & docker run)Maps Server
Dice Server
We have one written with node-js, though never launched. I did not realize how much is there. Either the node.js code we have is resurrected or we write something else up.
When master is updated, ideally we instruct the dice-server to fetch the latest updates and then a zero-downtime deployment for the new code to be live.
That was kinda a lot to sketch out... Any input/suggestions & help are all welcome!
Beta Was this translation helpful? Give feedback.
All reactions