Saw a recent announcement from GitLab that the
except syntax for
GitLab CI/CD was going to be deprecated soon in the v13 release.
exceptsyntax isn’t actually being deprecated as pointed out by Jason Yavorska. It’s actually related to a template that is deprecating said syntax.
That one’s on me as I couldn’t find the original notification about this to verify. I still ported my stuff over and plan to continue to use the
rulessyntax moving forward as it seems to provide a ton more flexibility that I may end up utilizing in the future.</em>
Not wanting to be stuck wondering why my builds are erroring out once that release drops, I figured I should put some time this week to shore up my projects that are using GitLab CI/CD and make sure I’m on the latest and greatest syntax.
Unfortunately, the latest and greatest syntax is also a bit more complex and I was left sifting through the docs a bit more than I would have liked, considering I would assume that a deprecation of this magnitude would have justified a bit of a migration guide with before and after syntax to be able to copy pasta.
Fortunately, at least for my use case, it didn’t take much to port the syntax over. Keep in mind, my usage is extremely simplistic so your mileage may vary if you’re looking for some robust guide to every possible scenario.
For me, simply limiting my
deploy stage to only run on
master is more than
sufficient. The syntax looks something like this (truncated of course):
deploy: stage: deploy only: - master
The new syntax is a bit more verbose, but still only 2 lines:
deploy: stage: deploy rules: - if: $CI_COMMIT_BRANCH == "master"
Not a whole lot to it, but as mentioned, I didn’t think their documentation did a good job with this one, so seemed worth documenting. Especially if I happen to forget one of my repos and have to remember what the hell I did to get things working again!