CI Pipelines
This is a placeholder where more info/details will be added regarding Ketida's platform pipelines.
A rough idea is that we will have one repo for Ketida's backend and different repos which will correspond to different clients.
- When it comes to the release flow of Ketida's backend we need first of all a well configured test suit (unit testing).
- Then we need unit tests which will cover the models as well as the services and controllers.
- When someone creates an MR, all the tests, existing and new, should run and pass successfully in order the MR to be merged into the main branch
- If an MR is being merged then a new release (docker image) should take place and also should be published under our dockerhub account
The main .gitlab-ci.yml
will act as a parent and will invoke 2 independent pipelines:
.gitlab-ci.client.yml
.gitlab-ci.server.yml
Both client and server pipelines will include 3 stages:
build
test
deploy
build
stage
- Job: docker build the image and push to docker hub
- When: each commit push
test
stage
- Job: pull the docker image build in the previous stage and run the test script
- When: each commit push
deploy
stage
- Job: docker build the image and push with the production tags
- When: MR is merged or a commit is pushed to
master