Just finished my first fully automated CI/CD system. Now all my commits go through the pipeline and gets deployed to live automatically.

It's a small project but still, it's really cool!

  • 0
    Nice what are you using fir deploying at each push ? Some automated tests before deploying ?
  • 7
    At each _commit_?
    Oh boi, not good
    Have a protected merge-only deploy branch with tests and only merge branches you actually want to go live
    Bonus points for a staging branch to test what's about to go live under production like environment
  • 2
    @Kimmax yeah couldn’t agree more. Every commit going straight to production is madness.
  • 1
    @SSDD well, if you add running unit tests, integration tests and whatever other tests you can do as part of the deployment and the later fails if those do not pass.
    The idea of deploying after each commit is not bad.

    We're actually doing the same at the company I'm working at.
  • 2
    @rising every case I come up with about why this should be a good idea results in "you're something wrong"
    You either only commit after feature x is done, you work alone?, you have different remotes for development / production? I can't just come up with a logical way how to integrate deployment after commit successfully
    Enlighten me :S
  • 0
    @Kimmax Hah, well yea, I'd never do that on a large project 😄. This is just a small personal thing I use to learn about new stuff so if it breaks in production, it's not so bad.

    But I do run tests and such on it before deployment. So if those fail it's not going to the next stage.

    If I'd do something like this on a large project I'd only allow pull requests to master, no raw commits, and add a button for deployment so its has that one last safeguard before it goes out. Obviously also testing, and such environments 😄

    But this is a learning project so straight to live!! 🎉🎉🎉😄
  • 0
    @veakey It's a CI pipeline at Gitlab.
    And a custom made deployer script on my server to deploy
  • 2
    @Kimmax we have one branch, master in each repository, we're working with a microservice architecture, and since we are a small team, each one of us is in charge of a microservice, so yeah one works on a project alone. But sometimes another person can add a feature in my repositories and since we have automated tests setup, and a strict 100% test coverage policy. The deployment is more secure.
    Yeah, each commit is pushed after a feature x is done.

    I agree that sometimes, even after tests pass, things break in production. That's always a existing risk, whatever way you deploy your software I guess .
  • 1
    Hm.. I read the rant, pushing to production is manly.
    But what could be manlier?
    usr@prod:$ sudo vim ./filename
  • 0
    @Floydian ooooo thx
Add Comment