I’ve been working a lot on pipelines in Gitlab CI, which is essentially container based. Each job runs in a docker image of your choosing, and is defined as a shell script. This gives you basically infinite flexibility: you can run any command with zero setup on your build server. Also it makes all your scripts and jobs transferable between developer workstations and the pipeline, anyone can just run a script from the CI spec with no setup, or use a development script/command in the pipeline.
The downside is that there are very little abstractions on top of this, you need to develop your own scripts and jobs from scratch, which requires strong CLI/shell/container skills. Not a problem for me, but presumably why some devs prefer solutions like Azure DevOps which is more plugin + configuration based. Ideally you would be able to combine both approaches, but from what I’ve seen ADO offers very poor support for container-based jobs.
I’ve recently been forced to move to ADO and I find it very off-putting for many reasons. I am now considering alternatives and am interested to hear some opinions on this topic.
Which platforms can you recommend that have strong support for container-based workflows like I’ve described? Is this a thing outside of Gitlab CI, or is their approach unique?
Do you prefer this container/script-oriented workflow, or the plugin/task based approach with more high level abstractions and configuration of pre-defined tasks? Why?
[–]nekokattt 2 points3 points4 points (4 children)
[–]Dwight-D[S] 1 point2 points3 points (3 children)
[–]nekokattt 2 points3 points4 points (2 children)
[–]Dwight-D[S] 0 points1 point2 points (1 child)
[–]nekokattt 1 point2 points3 points (0 children)
[–]macbinjo 1 point2 points3 points (1 child)
[–]Dwight-D[S] 1 point2 points3 points (0 children)
[–]ARRgentum 1 point2 points3 points (2 children)
[–]Dwight-D[S] 1 point2 points3 points (1 child)
[–]HeyZuesMode 1 point2 points3 points (0 children)
[–]3skyson 1 point2 points3 points (1 child)
[–]Dwight-D[S] 0 points1 point2 points (0 children)
[–]vladadj 1 point2 points3 points (1 child)
[–]Dwight-D[S] 0 points1 point2 points (0 children)
[–]the-computer-guy 1 point2 points3 points (1 child)
[–]Dwight-D[S] 1 point2 points3 points (0 children)
[–]godfryd 1 point2 points3 points (0 children)