Travis CI | Container Builds | Depot Docs

Authentication

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.

Project token

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.

User access token

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.

Configuration

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.


Examples

Build multi-platform images natively without emulation

This example shows how you can use the --platform flag to build a multi-platform image for Intel and Arm architectures natively without emulation.


Build and push to Docker Hub

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.


Build and push to Amazon ECR

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.


Build and load the image back for testing

You can use the --load flag to download the built container image into the workflow.


Build, push, and load the image back in one command

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.