New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add develop branch to mature development process #97
Comments
Sounds ok to me. Once the features are done you can merge to master? In a later stage everything should be able to deploy to Production immediately with some feature toggles in place. |
Yes, just regular Git flow. Everything happens on develop mainly with feature branches and whenever a release to production needs to happen everything is merged to master. But I'm open to suggestions 😄 |
Maybe Github Flow or even Trunk Based Development would be a simpler approach. |
So, basically everyone directly on master? Then how would you go about the build pipeline? No differentiation between CI and CD? It will always do a test deploy and functional test run on a PR? Maybe to a staging slot and then swap it whenever everything is green? |
I would go for trunk based development. Run the functional tests during the pr build against a test environment and automatically promote to production whenever everything is green. We do need to make sure we don't write more functional tests then strictly necessary otherwise the build might become to slow. |
All PRs to be staged built against Master before merging, as one of the pre-checks. Master to be build at any given time a PR is merged to produce a CI release on a dev/test environment. Given that all unit and integration tests pass, this action could also trigger an automated build pipeline to initiate some SpecFlow tests in that environment. When all tests are green and good to go, a tag is created (could also be automated) which will trigger a release to production, or maybe staging slot to be swapped if necessary |
Why create tags if every PR should be placed (after tests) immediately to production anyway? |
OK, OK, I like this approach, I'll just put master back then... :P And @Jandev how would I go about this with the whole ARM and specifically KeyVault thing? Because ideally you would want to create and tear down each time a PR is built, but the KeyVault needs some settings that are put in manually. |
Well we need a snapshot of production if a bug arises. Otherwise we can just party on master if anything arises, but it won't be a true copy of production so bugs might not be possible to reproduce. |
Ah, so basically it's just for reference later. Tag the version that is rolled out so you can refer back to it later. |
Well yeah, so production bugs could be fixed there and merged back to master once tested. |
Just to start up this discussion again. I'm still searching for the right way here. The develop branch is gone, so just trunk based, fine. But for building and releasing I'm wondering what is the right approach here. Calling @faniereynders @Jandev and @staal-it Ideally, what I want to do is:
How do you guys see this? I'm not sure what the right approach is here. What is holding me back at this time the most is that the ARM template cannot simply run without errors. It needs to be run once, then you add the secrets to the key vault manually and then run it again successfully. So, if we solve this, things should already be much simpler because we can dynamically create an environment while building/releasing. |
To allow a test environment, including functional tests, to be deployed, I created a develop branch and made it the default branch.
My idea would be:
Makes sense?
Also, just an FYI to update forks, etc. I have updated the currently opened PRs, but not sure if it has any side-effects. @Jandev @faniereynders @staal-it
The text was updated successfully, but these errors were encountered: