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
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
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