Understanding the Workspace
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
Before you use the parameters volume check the plugin authors docs to ensure it has support to read from /vela/parameters
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>
In cases where your clone needs special configuration you should add a step at the beginning of the pipeline adding the desired behavior.