Rewrite support for all shells moving all logic to AbstractShell and providing writers
- It adds proper escaping for all shells
- It aligns features of all shells: they support artifacts, caching, pre and post builds
- Makes easier to add a new features, they will automatically be available in all shells
Test builds:
- https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/rewrite-shells/binaries/gitlab-ci-multi-runner-linux-386
- https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/rewrite-shells/binaries/gitlab-ci-multi-runner-linux-amd64
- https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/rewrite-shells/binaries/gitlab-ci-multi-runner-linux-arm
- https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/rewrite-shells/binaries/gitlab-ci-multi-runner-darwin-386
- https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/rewrite-shells/binaries/gitlab-ci-multi-runner-darwin-amd64
- https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/rewrite-shells/binaries/gitlab-ci-multi-runner-windows-386.exe
- https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/rewrite-shells/binaries/gitlab-ci-multi-runner-windows-amd64.exe
- https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/rewrite-shells/binaries/gitlab-ci-multi-runner-freebsd-386
- https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/rewrite-shells/binaries/gitlab-ci-multi-runner-freebsd-amd64
- https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/rewrite-shells/binaries/gitlab-ci-multi-runner-freebsd-arm
Resolves: #986 (closed) Resolves: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/997 Closes: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/54