(sorry to sidetrack) but what is the usecase of deploying both dynatrace and datadog in the same environment? I don't think I have ever heard of this combination before.
They're "great"? Really? Imo the only sane thing is to write CI/CD pipelines in a scripting language like sh. That way it is portable and doesn't depend on one platform.
Gitlab CI supports "include" but not for scripts, just for templates. It's hard to have a centralised repository of scripts and include ones to use in a pipeline. I just don't understand why CI/CD couldn't just be in sh...
It's funny I started my career building exactly what you suggest. Even in shell. Before adopting Hudson (now Jenkins) and the like.
Bespoke CI/CD solutions are great, especially if you're the author and tailor it to the business, for a certain size and class of use case.
As a business though, it's hardly ever worth the investment/maintenance and ongoing operational cost vs. just externalizing it and dealing with the consequences unless it is your business or a fundamental part of how your business is delivered. Thus, generic (but extensible) solutions are the happy medium.
I am proficient in sh/bash. I just think it's a little ridiculous since the actual main logic of something like gitlab ci is still lines of shell code... I don't have an issue learning the actual syntax/logic myself but it just feels wrong.
We were evaluating CircleCI at work (wanting to move on from Jenkins) and ended up going with GitHub Actions near launch as it was a similar enough project but without needing another vendor involved. We have had some kinks but GHA works well for us now with a substantial spend.