I think that it's good idea to build artifact and then deploy it across all environment, test, preprod, prod. But according to Gitflow we use "release" branches for tests and we merge it to main, develop and delete release branch. So we have "release" artifact and we test it, but as I understand we deploy to prod artifact from tagged main branch. And for me it's strange. What could be the objective reasons of this?
Gitflow, QA, CI/CD deploy the same artifact across all environments
407 Views Asked by suppix At
1
There are 1 best solutions below
Related Questions in DEVOPS
- Elasticbeanstalk FastAPI application is intermittently not responding to https requests
- Get current Timestamp in CET format and concatenate with string in yml file
- AWS EKS Fargate pod scheduling issue with Prometheus deployment
- Jenkins Docker Agent Configuration Issue: Connection Refused on Local Ubuntu Install
- Unable to use env variable from prd environment context
- Search to know the best way to do a " Database on demand " for a personal project
- Can I know the namespace of my k8s Pod only by looking at its IP?
- Struggling with Route53 public hosted zones in a multi-account environment
- "Backend call failure" error in Nextjs App deployed on Azure static web app
- Terraform: Error: Provider configuration not present. Module gets created, but when I remove or comment it throws an error
- Azure Dev Ops - Project - Mentions - Restrictions on Users and Groups
- How to Generate a Migration Script in the Azure DevOps
- Disable Azure DevOps Pull Request being completed when Using Copado
- How to add bulk users ( using a csv file ) to an AzureDevops Group using Powershell
- How to add .env file while deploying app using Jenkins Pipeline script from SCM?
Related Questions in CICD
- While Running Github Actions Pipeline: No Signing Certificate "iOS Development" found: No "iOS Development" signing certificate matching team ID
- Shellscript touch command not working in jenkins pipeline
- Jenkins Docker Agent Configuration Issue: Connection Refused on Local Ubuntu Install
- Can you dynamically set a docker image LABEL to a git commit value when building an image with packer?
- Jenkins pipeline script: Accept merge request from Gitlab
- Unable to use env variable from prd environment context
- NodeJS [Errno 13] Permission denied - Azure DevOps pipleline AWS Lambda deployment
- Created Jenkins pipeline and added the script in the Pipeline Description.To check out the Project from the svn repository.NotWorking. Any Suggestion
- GitLab release-job creates a release where asset is artifacts.zip instead of concrete file
- Getting " Unauthorized Access" error in Git Actions(CI) when trying to run Fastlane(CD)
- avoid duplicated job in the gitlab-ci
- Can't figure out why the pipeline does not run
- Integrate Deployment status to Work Items in TFS
- pytest command used in gitlab CICD pipeline does not automatically pick test_* script and throws error "CoverageWarning: No data was collected."
- Jenkins install docker
Related Questions in BRANCHING-STRATEGY
- Jenkins-GitLab Integration: How to Clone Source Branch of Merge Request in Jenkins?"
- Git branching model for working on multiple versions simultaneously in 2023
- How is branching logic coded when dealing with a checkbox answer in RedCAP?
- How can I keep a solved git conflict in a different branch?
- Using list of indexes to append underscores to string tokens
- How to enforce Trunk-based branching strategy in Bitbucket?
- Can Cplex prioritize a variable over the others when branching?
- Git branching strategy for Agile methodology
- gitlab flow with release branches
- gitflow branching strategy with bitbucket
- How do I manage PR and CI pipelines in Git Flow strategy?
- What's the way using Sparx Enterprise Architecture by different user?
- Using Git to merge a branch onto two other branches that are not identical
- Multiple Initial Branches in Azure DevOps Repositories
- git: Why is it so difficult to get the parent branch name?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
main <=> prod
The reason for this is simple, however, the usual name of the main branch is
master. One needs to have an easy way to refer back to whatever prod contains, because, in the case of hotfixes, you want to branch out from prod, because the issue is reproducible there. It is another matter that there is usually a branch for hotfixes as well.release branches
Basically, you may have many different things that are being developed at the same time. You probably want to create well-separated partitions of problem-spaces to define your tasks, each such partition would represent a release. So, if you are optimizing some business logic on the one hand and you are polishing the UI on the other hand, then you not necessarily know which one will be released first, so you will have some named branches for those. Having "release" branches is a convention for this. Now, when you are deploying a release to prod, you can merge
masterinto your release branch and perform automatic and/or manual tests. When this is successful, your release branch is merged into yourmasterbranch.Deleting a release branch
Once the work represented by a release branch is successfully completed, it makes sense to remove it after it was merged to avoid wasting storage space on things that are unlikely to change (because they were accepted). Note that if a problem arises with a release later on, you can always
checkoutthe commit hash of the tagged commit that represents the release merge in order to see whether the problem you have seen was already manifesting when the release branch was released.