I’m trying to move my org into a more gitops workflow. I was thinking a good way to do promotions between environments would be to auto sync based on PR label.

Thinking about it though, because you can apply the same label multiple times to different PRs, I can see situations where there would be conflicts. Like a PR is labeled “qa” so that its promoted to the qa env, automated testing is started, a different change is ready, the PR is labeled “qa”, and it would sync overwriting the currently deployed version in qa. I obviously don’t want this.

Is there a way to enforce only single instances of a label on a PR across a repository? Or maybe there is some kind a queue system out there that I’m not aware of?

I’m using github, argocd, and circleci.

  • snoweMA
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    GitHub has an Environments feature that is probably what you’re looking for. It will tell you exactly what pr is deployed to an environment at any point in time. I would recommend automatically removing labels after the deploy is done, so that you’re not depending on reading which labels are active, instead just use the Environments.