---
# System prepended metadata

title: Release process
tags: [git, release]

---

###### tags: `git` `release`

# Release process

*Author: **Jérémy Habit***
*Created at: **04/02/2021***
*Last updated : **24/03/2021***

## How to release on Quality

*ex : release-2.28*

1) push on the branch : **`main`**

**Results** : 
* A github action called **Build and push quality** is triggered.
* A job jenkins is triggered : https://ci.upply.com/view/infra/job/deploy-helm-quality/. Once this last one is finished, the new release will be available on https://quality.upply.com/


## How to release on Pre-prod

*ex: release-2.28 to main*

1) **`git checkout main`**
2) **`git pull`**
3) **`git tag 2.28.0-rc.1`**
4) **`git push origin 2.28.0-rc.1`**
5) See results section to see if everything works correctly (github action, build jenkins)
6) create the support branch for all future bugs fixes : **`git checkout -b feature-release/support-2-28-x-integ`**
7) send a message on Teams (Tech lead / smarketplace) to inform 2.28.0-rc.1 tag is building.
8) write release-candidate tag on https://upply1.atlassian.net/wiki/spaces/UDT/pages/29557141/Release+Notes
9) If the last release-candidate is approved by the QA team, (go/no go ==> go prod) then you can create a production tag (and not a rc tag) from the tag 2.28.0-rc.1 :
    * **`git checkout 2.28.0-rc.1`**
    * **`git tag 2.28.0`**
    * **`git push origin 2.28.0`**

**Results** : 
* A github action called **Build and push preprod** is triggered. Note that this last one is triggered when a tag is pushed.
* A job jenkins is triggered (on tag too) : https://ci.upply.com/view/infra/job/deploy-helm-preprod/. Once this last one is finished, the new release will be available on https://preprod.upply.com/


## How to release hotfixes on Pre-prod
*ex: release-2.28.0-rc.1*
1) **`git checkout feature-release/support-2-28-x-integ`**
2) **`git checkout -b hotfix/mp-5456-my-super-hotfix`**
3) once the fix is done, make a pull request from **`hotfix/mp-5456-my-super-hotfix`** to **`feature-release/support-2-28-x-integ`**
4) once the pull request is approved, merge it on **`feature-release/support-2-28-x-integ`** with the appropriate commit name.
5) Create a new release-candidate tag from **`feature-release/support-2-28-x-integ`** (and not from **`main`** !! warning).
    * **`git checkout feature-release/support-2-28-x-integ`**
    * **`git tag 2.28.0-rc.2`**
    * **`git push origin 2.28.0-rc.2`**
6) **`git checkout main`**
7) **`git merge feature-release/support-2-28-x-integ`**
8) check/resolve potential conflicts
9) **`git push -f`**


## How to create feature branch with environment

take a look at : [Git+Naming+Format](https://upply1.atlassian.net/wiki/spaces/UDT/pages/29753771/Git+Naming+Format)