officialmoonbyte / AnarchyUtils

Fix exploits and makes it easier to run a Minecraft Anarchy Server.
GNU General Public License v3.0
0 stars 1 forks source link

Design a CI/CD deployment process for Anarchy Utils #4

Open alex-ritter opened 1 week ago

alex-ritter commented 1 week ago

Anarchy Utils needs to have a way to deploy automatically to public release channels so 4B8T can automatically update Anarchy Utils

wolfieboy09 commented 1 week ago

This is one way I'm thinking of being able to do that:

alex-ritter commented 1 week ago

So I have a different idea for this.

4B8T will have two separate environments, a UAT environment and a PROD environment. To connect to the UAT environment you can use uat.4b8t.net, to connect to prod you can use 4b8t.net. If prod is down it will connect to the UAT environment.

4B8T will always download the latest of Anarchy Utils, even if it is a beta / snapshot release. The development process should be

  1. The developer forks the main branch of Anarchy Utils to their own repository.
  2. The developer makes changes to Anarchy Utils
  3. The developer locally test those changes on DEV for anarchy utils
  4. The developer creates a pull request from his Fork into Main
  5. A new build of main will be cut from the CI/CD process, this build will be a beta / snapshot
  6. The build will get verified locally by me or @wolfieboy09
  7. We will then cut a release candidate with any new changes from local testing
  8. The release candidate will then get deployed into 4B8T UAT
  9. Finally, either me or @wolfieboy09 will do the final testing in 4B8T UAT before the full release gets pushed out.

This process ensures that

  1. All changes are tested locally on the dev computer
  2. If the change is not tested locally on the dev computer, it will be tested on dev by either me or @wolfieboy09
  3. Once the change is tested on DEV, any new changes from testing will be tested later on in a UAT environment
  4. All code pushed as a prod release of Anarchy Utils will be stable

We should document this process somewhere in git so other developers are aware on how to commit to Anarchy Utils and what our release cycle is.