Workspace

Drone automatically creates a temporary volume, known as your workspace, where it clones your repository. The workspace is the current working directory for each step in your pipeline.

Because the workspace is a volume, filesystem changes are persisted between pipeline steps. In other words, individual steps can communicate and share state using the filesystem.

Workspace volumes are ephemeral. They are created when the pipeline starts and destroyed after the pipeline completes.

Customizing the Workspace

You can customize the workspace directory by defining the workspace section in your yaml. Here is a basic example:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
kind: pipeline
type: docker
name: default

workspace:
  path: /drone/src

steps:
- name: backend
  image: golang:latest
  commands:
  - go get
  - go test

- name: frontend
  image: node:latest
  commands:
  - npm install
  - npm run tests

This would be equivalent to the following docker commands:

$ docker volume create my-named-volume
$ docker run --volume=my-named-volume:/drone/src golang
$ docker run --volume=my-named-volume:/drone/src node