Execute CI job via Step Runner service - Instance Executor
Execute a CI job via the Step Runner service for ~"executor::instacce" according to https://docs.gitlab.com/ee/architecture/blueprints/gitlab_steps/runner-integration.html#instance
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). - Creating a connection function that will (ab)use the
docker exec
protocol and allow sendinggRPC
requests over it (See !4555 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:
- Assume the
step-runner
binary exists in the target host, and thesteps-runner
service is running, listening on a local socket (see https://docs.gitlab.com/ee/architecture/blueprints/gitlab_steps/runner-integration.html#non-goals). - Assume the
step-runner
binary has aproxy
command.