The workspace defines the shared volume and working directory shared by all pipeline steps. The default workspace matches the below pattern, based on your repository url.
The workspace can be customized using the workspace block in the Yaml file:
+workspace: + base: /go + path: src/github.com/octocat/hello-world pipeline: build: image: golang:latest commands: - go get - go test
The base attribute defines a shared base volume available to all pipeline steps. This ensures your source code, dependencies and compiled binaries are persisted and shared between steps.
workspace: + base: /go path: src/github.com/octocat/hello-world pipeline: deps: image: golang:latest commands: - go get - go test build: image: node:latest commands: - go build
This would be equivalent to the following docker commands:
docker volume create my-named-volume docker run --volume=my-named-volume:/go golang:latest docker run --volume=my-named-volume:/go node:latest
The path attribute defines the working directory of your build. This is where your code is cloned and will be the default working directory of every step in your build process. The path must be relative and is combined with your base path.
workspace: base: /go + path: src/github.com/octocat/hello-world
git clone https://github.com/octocat/hello-world \ /go/src/github.com/octocat/hello-world