GitLab CI has templates you could use. Only bad thing is they did is they way they launch their job containers (defaulting to BASH/SH interpreter and preprocessing script section). This is a bit limiting in using custom containers for integration. But you can do as well.
GitHub actions do have their action params which make them nice for for validation, also they focused more on the API but I do see actions also as way of monetizing integration which is the cloud's OpenSource business model.
And here we are with Tekton or even AWS CodePipeline which could be more seen as CloudPipeline. The questions is how a CICD becomes cloud native? And one part of the answer is integration with Cloud and Services API. That's more about the paradigm shift of the "third" wave.
Also a simple CICD became now a build platform that integrate into the layers of the cloud, mainly orchestrators and solve the problems of how artifacts and data flow through the cloud when new packages are delivered. Or can that be seen as own layer?
Look out for https://cd.foundation/ and their workgroups!