Skip to main content

IDE

IDEs aim to provide a remote development environment as similar as possible to your local development environment. The functionality available in your IDE can be customized, which you can configure using the ide.yaml. Because recreating the custom IDE image each time is time-consuming, we cache the images.

When creating an IDE, we check whether there exists already a cached image with the same configuration. If that is the case, the cached IDE is reused; otherwise a new build is made. IDE caches are currently valid for 7 days, after this they are purged. The recommended way to have up-to-date builds, ready-to-use for your developers, is to let your CI system create new caches for custom IDEs every night. When the ide.yaml is changed we will create new cached IDE automatically.

info

At the moment IDEs always run on on-demand nodes.

In the next section we focus on how to customize your build using the ide.yaml. We also have the following how-to articles that can help you:

ide.yaml

info

Builds can take maximally 1 hour, if they take longer they are automatically canceled

Here is a full example:

vscode:
extensions:
- ms-vscode.azure-account
buildSteps:
- name: my first build step
cmd: |
sudo apt update
sudo apt install htop -y

vscode

This block defines the settings for VS Code.

extensions

The extensions section is a list that specifies the VS Code extensions to install during the build. To find the identifier for an extension, please check our how-to-guide.

For example:

vscode:
extensions:
- ms-vscode.azure-account

buildSteps

The build steps section allows you to define scripts that need to be executed during the creation of a custom IDE. This allows you to install additional dependencies such as the AWS CLI, a postgres driver, ...

For example:

buildSteps:
- name: my first build step
cmd: |
sudo apt update
sudo apt install htop -y

buildSteps[n]name

The name of this build step.

buildSteps[n]cmd

The name of the script to be executed during installation. The specified commands will be wrapped up into a bash script and executed during the build.