> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/open-source/use-harness-open-source/pipelines-1/steps/run.md).

# Run

[Run steps](https://github.com/iKettles/harness-gitbook/tree/main/open-source/use-harness-open-source/reference/pipelines/yaml/step-run/README.md) define a series of shell commands.

## Editor <a href="#editor" id="editor"></a>

1. From the pipeline editor, select **Run** from the **Select a step** menu on the right
2. Enter a name for the step in the **Name** field
3. Add the necessary commands in the **Script** field
4. Optionally select a shell from the **Shell** drop-down menu
5. Expand the **Container** section and fill in the required fields, then select **Add**

The run step will be added in the pipeline editor.

{% hint style="info" %}
Run step commands are executed inside the root directory of your git repository.

The root directory of your git repository, also called the workspace, is shared by all steps in your pipeline.
{% endhint %}

## Manual <a href="#manual" id="manual"></a>

You can optionally add plugin steps directly to your pipeline file manually.

This pipeline runs `go build` and `go test` commands in the golang Docker image.

```yaml
kind: pipeline
spec:
  stages:
  - type: ci
    spec:
      steps:
      - name: test
        type: run
        spec:
          container: golang
          script: |
            go build
            go test
```
