• seth@lemmy.world
    link
    fedilink
    arrow-up
    147
    arrow-down
    4
    ·
    edit-2
    8 months ago

    It’s git push origin branch and then merge after submitting a pull request from branch to main after a successful lint check, build, deployment, and testing in a non-production environment, and PR approval. What kind of wild west operation allows pushing directly to main?

    • redcalcium@lemmy.institute
      link
      fedilink
      arrow-up
      35
      ·
      8 months ago

      Employees who push first win and get to leave early. The rest would be the suckers who would merge whatever mess left behind by the early employees.

      • Pacmanlives@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        edit-2
        8 months ago

        Hey there were like 3 of us lol! No joke that’s what I have done at a few of the smaller shops as an SRE/System Engineer

    • MR_GABARISE@lemmy.world
      link
      fedilink
      arrow-up
      9
      arrow-down
      1
      ·
      8 months ago

      What kind of wild west operation allows pushing directly to main?

      That’s kinda the whole point of trunk-based development.

    • dan@upvote.au
      link
      fedilink
      arrow-up
      6
      ·
      edit-2
      8 months ago

      Our changes land in main at my workplace, once they’ve received a code review and all CI checks pass (which includes tests, E2E tests, etc). We use feature flags rather than feature branches, so all diffs / pull requests are against main. We use continuous deployment which means changes are automatically deployed once landed. Changes roll out just to employees, then to servers used by a small percentage of users (2% I think), then everywhere. All risky changes are gated by feature flags so they can be enabled or disabled without a code push.

    • AA5B@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      8 months ago

      No kidding. Never push to main, and you most likely can’t. While I get the joke of the meme, I’d send the person packing if they don’t understand branching, and branch flow, rebasing or reverting. Even if you look up the command or do it all through your IDE, understanding the workflow of using git is important

    • SpaceCowboy@lemmy.ca
      link
      fedilink
      arrow-up
      3
      ·
      8 months ago

      They laid off everyone else so there’s no one to the code reviews now. So fuck it, we’ll do it live!

      • AA5B@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        8 months ago

        We just had a customer escalation caused by exactly this. One group relied too heavily on tribal knowledge for code reviews and didn’t want any other process. Once the tribal elders were gone, no one knew all the things to look for, and there was no other way to catch issues

        As a Continuous Integration and Test guy, I was standing in the corner yelling “I thought you were DevOps. Where’s the automation?” Fine, Puppet/YAML doesn’t work with a traditional build and test, but you could have done syntax validation and schema validation that would have caught before the code review could have happened (and I showed them how a year ago, even offered to do it for them) and set up some monitoring to discover when you break stuff, before customers discover it.

    • korok@possumpat.io
      link
      fedilink
      arrow-up
      1
      ·
      8 months ago

      Do you not use a fork as your origin, separate from the production upstream repo? I’ll push to my fork’s main branch for small or urgent changes that will definitely be merged before anything else I’m working on.

    • 1984@lemmy.today
      link
      fedilink
      arrow-up
      1
      ·
      8 months ago

      I never worked anywhere where they had this set up. I would push to branches and make pull requests, but always work in the production environment.

      I was mainly working as a data engineer though so that’s probably why. It’s hard to have test environments since you can’t replicate all the enormous amounts of data between environments without huge costs.