For Travis CI, you can use project or user access tokens for authenticating your build with Depot. We recommend using project tokens as they are scoped to the specific project and are owned by the organization.
You can inject project access tokens into the Travis CI environment for depot
CLI authentication. Project tokens are tied to a specific project in your organization and not a user.
You can also inject user access tokens into the Travis CI environment for depot
CLI authentication. User tokens are tied to a specific user and not a project. Therefore, it can be used to build all projects across all organizations that the user has access.
To build a Docker image from Travis CI, you must set the DEPOT_TOKEN
environment variable in your repository settings. This can be done through the UI for your repository or via the Travis CLI:
travis env set DEPOT_TOKEN your-user-access-token
In addition, you must also install the depot
CLI before you run depot build
.
sudo: required
env:
- DEPOT_INSTALL_DIR=/usr/local/bin
before_install:
- curl -L https://depot.dev/install-cli.sh | sudo sh
script:
- depot build .
This example shows how you can use the --platform
flag to build a multi-platform image for Intel and Arm architectures natively without emulation.
sudo: required
env:
- DEPOT_INSTALL_DIR=/usr/local/bin
before_install:
- curl -L https://depot.dev/install-cli.sh | sudo sh
script:
- depot build --platform linux/amd64,linux/arm64 .
This example installs the depot
CLI to be used directly in the pipeline. Then, docker login
is invoked with the environment variables for DOCKERHUB_USERNAME
and DOCKERHUB_TOKEN
for the authentication context of the build to push to the registry.
sudo: required
# Needed just for logging the Docker build context into a registry
services:
- docker
env:
- DEPOT_INSTALL_DIR=/usr/local/bin
before_install:
- curl -L https://depot.dev/install-cli.sh | sudo sh
script:
- docker login --username $DOCKERHUB_USERNAME --password $DOCKERHUB_TOKEN
- depot build -t <your-registry>:<your-tag> --push .
This example installs the depot
and aws
CLIs to be used directly in the pipeline. Then, aws ecr get-login-password
is piped into docker login
for the authentication context of the build to push to the registry.
sudo: required
# Needed just for logging the Docker build context into a registry
services:
- docker
env:
- DEPOT_INSTALL_DIR=/usr/local/bin
before_install:
- curl -L https://depot.dev/install-cli.sh | sudo sh
- curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
- unzip awscliv2.zip
- ./aws/install
script:
- aws ecr get-login-password --region <your-ecr-region> | docker login --username AWS --password-stdin <your-ecr-registry>
- depot build -t <your-ecr-registry>:<your-tag> --push .
You can use the --load
flag to download the built container image into the workflow.
sudo: required
env:
- DEPOT_INSTALL_DIR=/usr/local/bin
before_install:
- curl -L https://depot.dev/install-cli.sh | sudo sh
script:
- depot build --load .
You can simultaneously push the built image to a registry and load it back into the CI job by using the --load
and --push
flag together.
sudo: required
# Needed just for logging the Docker build context into a registry
services:
- docker
env:
- DEPOT_INSTALL_DIR=/usr/local/bin
before_install:
- curl -L https://depot.dev/install-cli.sh | sudo sh
script:
- docker login --username $DOCKERHUB_USERNAME --password $DOCKERHUB_TOKEN
- depot build -t <your-registry>:<your-tag> --push --load .