Gitlab CE is just amazing. It's hard to fathom going back to GitHub (and I wrote a book for O'Reilly about the GitHub API). The tight integration with CI rather than using external services is amazing.
Have you tried Github Actions? (I haven't, just want to calibrate).
Github actions is nowhere near as polished/mature ad gitlab ci. Github actions feels more like a "hack blocks together" than a true pipeline.
Github actions is confusing and has a steep learning curve, but the flexibility of using Docker makes it fast and reliable to hack together workflows.
It's also slow and difficult to cache build artifacts which makes it immensely painful to debug if you have anything of moderate complexity.
Allegedly there's a way to cache image layers and artifacts on Github. I've taken to pushing them to S3 buckets so my CI runs can be incremental where possible.
See [1] actions/cache for more details.