4 ms·
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.
by gitgud 7y ago
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.
- xrd 7y agoAre you suggesting gitlab ci isn't docker? All my pipelines are some docker variant. I'm not sure if you are just suggesting actions was done the right way with docker, but that's nothing special with gitlab ci. Can you clarify? You can even use your own docker repository with gitlab, though I'm unsure if that's something that only comes with EE (I haven't needed it yet, I just keep all my extras in the gitlab ci yaml file).
- gitgud 7y ago> "Are you suggesting gitlab ci isn't docker?" Sorry, I'm honestly not familiar with Gitlab CI. I was just originally mentioning how the use of Docker in Github Actions allowed for amazing flexibility, which I thought was cool. What makes Gitlab CI a better or more polished API than Github Actions? At first glance they look very similar
- globular-toast 7y agoGitlab has a few different modes for its runner. One of them uses docker to run your script in a container. But you can also have shell executors which is more like Jenkins, for example. That can actually be better if what you're doing is building a lot of Docker images.
- unlinked_dll 7y agoIt'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.
- gitgud 7y agoIt's fairly easy to cache folders in Github actions, we use it for node_modules, the refreshed when the package.json file changes. See [1] actions/cache for more details. [1] https://github.com/actions/cache https://github.com/actions/cache
- unlinked_dll 7y agoHow does this work for build artifacts generated by a docker image? I looked at it awhile back but it didn't fit my use cases.
- globular-toast 7y agoI used Docker with Jenkins to do the same thing. Of course it's flexible, but it's not nice (and I wouldn't call it fast either).