Build Host Dependencies
Build VMs run on Amazon Linux 2023 and come with a standard set of development tools pre-installed. You can add language runtimes, IaC tools, and cloud CLIs using the dependencies field on artifact definitions and VM-based steps.
Using the dependencies Field
Specify dependencies as a list of tool.version strings. The version prefix is matched against available versions, so node.22 resolves to the latest installed 22.x release.
artifacts:
My App:
type: DEVRAMPS:BUNDLE:BUILD
dependencies: ["node.22", "python.3.12"]
params:
build_commands: |
npm ci
python scripts/generate.py
zip -r app.zip dist/
file_path: /app.zip
If you omit the version, the latest installed version is used:
dependencies: ["node"] # resolves to Node.js 24.x
You can be as specific as you need:
dependencies: ["node.20"] # resolves to 20.12.0
dependencies: ["node.22.5"] # resolves to 22.5.0
dependencies: ["node.22.5.0"] # exact match
Installable Dependencies
Language Runtimes
| Dependency | Versions | Notes |
|---|---|---|
node | 18.20.1, 20.12.0, 22.5.0, 24.0.0 | Node.js with npm. Use node.22 for the latest 22.x. |
python | 3.10.14, 3.11.9, 3.12.5, 3.13.1, 3.14.2 | CPython with pip. Use python.3.12 for the latest 3.12.x. |
go | 1.23.0, 1.24.0, 1.25.0 | Go toolchain. Use go.1.24 for the latest 1.24.x. |
java | 11.0.22, 17.0.10, 21.0.2 | Eclipse Temurin JDK. Use java.21 for the latest 21.x. |
ruby | 4.0.1 | Ruby with Bundler. |
Infrastructure as Code
| Dependency | Versions | Notes |
|---|---|---|
terraform | 1.5.7, 1.6.6, 1.7.5, 1.8.5, 1.9.2, 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.14.0 | HashiCorp Terraform. Use terraform.1.9 for the latest 1.9.x. |
tofu | 1.11.3 | OpenTofu (open-source Terraform fork). |
packer | 1.14.3 | HashiCorp Packer for machine image builds. |
Cloud & Orchestration
| Dependency | Versions | Notes |
|---|---|---|
aws | 2.33.2 | AWS CLI v2. |
kubectl | 1.29.3, 1.30.2, 1.31.1, 1.32.0, 1.33.0, 1.34.0 | Kubernetes CLI. Match to your cluster version. |
helm | 3.19.5, 4.0.5 | Kubernetes package manager. Use helm.3 or helm.4 to pin major version. |
Configuration Management
| Dependency | Versions | Notes |
|---|---|---|
ansible | 8.7.0 | Ansible automation platform. |
Pre-installed Tools
Every build VM includes the following tools regardless of your dependencies configuration. You do not need to list these.
Docker
Docker is available on all build VMs and started automatically. You can use docker build, docker run, and multi-stage builds without adding any dependency.
Git
Git is pre-installed. Your repository is automatically cloned into the build VM before your commands run.
Standard Build Tools
Amazon Linux 2023 includes a full set of compilation and packaging tools:
| Tool | Description |
|---|---|
gcc, g++ | C/C++ compilers |
make | GNU Make |
tar, zip, unzip, xz | Archive utilities |
curl, wget | HTTP clients |
jq | JSON processor |
openssl | TLS/SSL toolkit |
patch | File patching utility |
If your build only uses Docker (e.g., DEVRAMPS:DOCKER:BUILD), you don't need to specify any dependencies. The Docker daemon is always available.
Examples
Node.js bundle build
artifacts:
Lambda:
type: DEVRAMPS:BUNDLE:BUILD
dependencies: ["node.22"]
params:
build_commands: |
npm ci --production
zip -r lambda.zip node_modules/ src/ index.js
file_path: /lambda.zip
Multi-tool build
artifacts:
Infrastructure:
type: DEVRAMPS:BUNDLE:BUILD
dependencies: ["terraform.1.9", "python.3.12", "aws"]
params:
build_commands: |
python scripts/generate-tfvars.py
terraform init
terraform plan -out=plan.tfplan
zip -r infra.zip .terraform/ plan.tfplan
file_path: /infra.zip
Helm chart packaging
artifacts:
Charts:
type: DEVRAMPS:BUNDLE:BUILD
dependencies: ["helm.3"]
params:
build_commands: |
helm dependency update charts/my-app
helm package charts/my-app -d output/
zip -r charts.zip output/
file_path: /charts.zip