Execute CI job via Step Runner service - Docker Executor

Problem

Customers want to run steps using the Docker executor.

Proposal

Execute a CI job via the Step Runner service for executordocker according to https://docs.gitlab.com/ee/architecture/blueprints/gitlab_steps/runner-integration.html#docker

This includes:

  • Finding a good place to intercept "regular" script execution and replace it with delegation to steps.
  • Creating RunRequest from the Job request (#37413 (closed)).
  • Creating a connection function that will (ab)use the docker exec protocol and allow sending gRPC requests over it (See !4555 (closed) for working example for executordocker).
  • Using the step service client library to manage the entire execution lifecycle.
  • Step Runner service logs should be streamed to the CI job trace log.
  • Step Runner StepResults can be /dev/null for now.

Notes:

Edited by Cameron Swords