A contract, not a script
A task declares what goes in, what comes out and which resources it needs — and nothing about how the work gets done. Swapping implementation is one line in the pipeline.
A contract, not a script
A task declares what goes in, what comes out and which resources it needs — and nothing about how the work gets done. Swapping implementation is one line in the pipeline.
The cost is visible
Folders, credentials and Docker access are declared and typed. Two implementations of the same contract become comparable by the privilege they require.
It does not belong to your CI
The same pipeline runs locally or becomes native GitLab, GitHub Actions and Cloud Build configuration, with the same images pinned by digest.
A worker is an image
Whoever writes tasks only needs to know this: it reads one file and writes another. No mandatory SDK, no preferred language — three lines of shell are enough.