Understanding the Workspace

Shared directory that all build steps begin at.

Vela uses a shared volume model between steps to allow shared file system during the build process. These volumes should be considered ephemeral in the sense once a build completes execution all data via the volume being destroyed.

Working Directory

This ensures the configuration, code, dependencies, and compiled binaries are persisted and shared between the steps. The default workspace attached to every build is unique and matches the below pattern:

Source:

# Syntax
/vela/src/<source_provider/<source org>/<source repo>

# Example
/vela/src/github.com/go-vela/hello-world

Secrets:

# Syntax
/vela/secrets/<path>/<key>

# Example
/vela/secrets/github/username/
/vela/secrets/github/password/

Parameters:

# Syntax
/vela/parameters/<path>/<key>

# Example
/vela/parameters/github/repo/settings/topics

This would be the equivalent to the following Docker commands being executed:

docker volume create build-workspace

docker run --volume=build-workspace:/vela/ <image>

Cloning

Vela automatically checks out the repository into a local volume that is mounted into each Docker container. This volume is generally referred to as a workspace, which defines the working directory shared by all steps in a build.

git clone https://github.com/go-vela/hello-world.git <workspace>