How to communicate with execution environments.
Workflow jobs steps run on execution environments. There are currently two ways the orchestrator can communicate with execution environments: SSH and agents.
In a workflow, you can use provider plugin. And the generator plugins can also generate jobs that use provider plugins.
But sometimes you may want to customize the resulting steps. If you are calling those providers directly, you can add steps before or after the call, but this can be tedious if you have many calling points. And if you are using generator plugins, you have no control.
Sometime, you do not want to run tests, but you want to test your plugins or, well, tests, or some parts of them.
The orchestrator comes with a special execution environment,
that you can use for this purpose.
In a workflow, each job run in its own separate execution environment. But, sometime, you would like to get some information from a job you depend on.
A basic ordering is offered by the
needs section. Once a job depends on another,
it can access the outputs produced by the job(s) it depends on, through contexts.
In a typical workflow, you checkout code at the beginning of each job. If you have many jobs in your workflow, duplicating the repository parameters can become tedious.
Workflows allow you to define
repository resources, that you can share between
Additionally, those resources can carry their own specific credentials, so that job generators can omit them.