Working with Linux environment¶
To use Linux VM based environment, use the following type for runner definition -
global:
runner:
os_image: ubuntu
# or use per task
tasks:
runner:
os_image: ubuntu
compile:
steps:
- run: git --version
Currently, we support Ubuntu distribution (Jammy, 22.04 LTS) and managed by us. It has common build tools and programming language runtimes pre-installed. It's a customized image based on Ubuntu 22.04 LTS. A fresh ephemeral VM will be created on each trigger and reaped after the workflow completes.
It comes with commonly used build tools pre-installed, check toolbox for more details.
Using Docker daemon¶
Each workflow run gets it's own docker daemon, connected and capable of executing your Docker commands in the pipeline.
Note:
- Currently, we only supports Docker 19.0x. If you need specific version of Docker, please contact our support.
- The Docker daemon runs locally on the same environment for Linux VM based build environment.
Install dependencies via apt
¶
If a dependency you need is not present in the toolbox, you can install it with Ubuntu package manager (apt
) or using an alternative method possible on a Linux system.
apt-get update
apt-get install -y <name>
For example, this installs Digitalocean CLI (doctl
) in a workflow run -
...
tasks:
deploy: # name of the task
steps:
...
- commands:
- DOCTL_VERSION=1.48.1
- curl -sL https://github.com/digitalocean/doctl/releases/download/v$DOCTL_VERSION/doctl-$DOCTL_VERSION-linux-amd64.tar.gz | sudo tar -xzv -C /usr/local/bin
# OR install in $HOME/bin directory ( included in PATH by default)
- curl -sL https://github.com/digitalocean/doctl/releases/download/v$DOCTL_VERSION/doctl-$DOCTL_VERSION-linux-amd64.tar.gz | tar -xzv -C ~/bin
- doctl version
...