I am trying to start using GitHub flow in my project. I like that it is simple and, more importantly, it encourages continuous delivery.
However, there is one thing about this flow that I cannot understand: how do I test my changes? The 5th step of the official guide says:
Once your pull request has been reviewed and the branch passes your tests, you can deploy your changes to verify them in production.
But what if these "my tests" (or at least some of them) cannot be run locally, what if in order to run the tests I have to deploy my changes to a TEST environment first? What branch do I deploy then?
Now, I could deploy my feature
branch to TEST. But what if other developers also want to deploy their feature branches at the same time? They will then inevitably rewrite my changes. The solution to this could be having many TEST environments, but again, this can be too expensive and, moreover, this approach still allows to only test the features in isolation. If two features work in isolation, it does not yet mean, that they will work together (once deployed to production).
Another option would be to have a dedicated branch for deploying to TEST environment, say next
. I could merge my feature branch to next
and then deploy next
to TEST. But then why does GitHub flow say nothing about it? By the way, GitHub flow with next
branch looks very much like Gitworkflows already.
To summarize my question: how do I test my changes that cannot be tested locally with GitHub flow? I really cannot believe that GitHub flow encourages me to do it in production.
Thank you.