Skip to content

4. CI CD

sriramkanakam87 edited this page Jun 21, 2024 · 11 revisions

To simplify the process of development, releasing of software, and also keeping the agile development practices in mind, we have a CI/CD workflow intact with our repository which will enforce the automation of the whole deployment process. The workflow focuses on automating the software delivery process so that the team can easily deploy their code to production at any time without compromising on quality.

We have used Github Actions for building the CI/CD pipeline.

To deploy code to Development

  • Update the READMe.md file if you are planning to create the release.-
  • After merging the PR to the development branch.
  • Wait for the workflow in Github Actions to finish.
  • Once the workflow run is complete, refresh your browser to find the code changes.

Please Note - Code cannot be pushed directly to development branch. For any code changes, you will have to make changes in a separate branch and create a pull request to the development branch, which will require all the checks/tests to pass and at least one approval from the reviewer before merging.

To deploy code to Production

  • Before you deploy your code to the main branch, please make sure it has been tested and works fine with nmrXiv in Dev.
  • Update the READMe.md file if you are planning to create the release.
  • Create a PR from development to main branch and merge the PR after all the checks has passed and approved by the reviewer.
  • Once the code is merged to main it will trigger the release-please workflow in Github Action which will help in creating an auto-release with auto CHANGELOG generation depending on your conventional commits
  • Before the release-please creates the release pull request, it will need the e2etest and lint to pass first.
  • Approve the release PR created by release-please action.
  • Once the PR is merged wait for a few minutes for the release to be created.
  • Once the release is created, switch to branch prod-helm-deploy in your local.
     git checkout prod-helm-deploy
  • Pull the latest code from both prod-helm-deploy & main branches and merge them into prod-helm-deploy.
  • Finally, push all the latest commits to the prod-helm-deploy branch.
  • Wait for the workflow to finish in Github Action.
  • Once the workflow run is complete, refresh your browser to find the code changes.

Please Note - Deployment would be unsuccessful or incomplete if there is any failure in Github Action at any point of the above steps.

Clone this wiki locally