DEV Community

Discussion on: 5 reasons to start staging your code right now

Collapse
 
joolsmcfly profile image
Julien Dephix

Days of “let’s deploy and be on the lookout” are gone indeed.

  • we use Docker for local env so our machines have the same versions as production.
  • we have a staging site for final testing before going live (preprod.somesite.com)
  • finally we have a home made script to deploy branches so they can be tested in isolation (2737.preprod.somesite.com where 2737 is a task ID in Jira, thanks to nginx / certbot wildcards) before they are merged to develop

Works well for us!

Collapse
 
vjnvisakh profile image
Visakh Vijayan

I think heroku allows you to do all of this by default. It has staging and production environments. Plus it has review apps that can be linked to an issue in JIRA.

Collapse
 
joolsmcfly profile image
Julien Dephix

Indeed but review apps only work with GitHub if I understand the doc correctly: devcenter.heroku.com/articles/gith...

Thread Thread
 
vjnvisakh profile image
Visakh Vijayan

ah! yes. heroku only has github support currently.

Collapse
 
roberts profile image
Robert Schleinhege • Edited

In Deploy Now, we've implemented the following mechanic:

If a dev opens a new branch in addition to main, we directly deploy it under a preview URL using the same build workflow that is also used in "main". The staging environment receives a generated preview URL incl. SSL. One the branch gets deleted/merged, we delete the staging environment. But if someones pushes to main, updates go live instantly.

Does this sound like a good workflow for you, or would you design it differently? @vjnvisakh & @joolsmcfly

Thread Thread
 
joolsmcfly profile image
Julien Dephix

Sounds pretty good to me except for small details.

We deploy feature branches we deem deployable/advanced enough (test suites are automatically run only if you push to a branch that has an open pull request).
If you're in the early stages of a new feature then it's not very useful to have a preview URL as it might be broken.

Our main branch is protected so you cannot push to it directly. You have to open a pull request first. That way we make sure tests are run and that someone reviews your changes.

We merge pull requests only if the matching pipeline (our test suite basically) is successful and if at least one person validates your PR.

Hope this helps!

Thread Thread
 
roberts profile image
Robert Schleinhege

Helps, thanks a lot :)