Developer Center


Build and package services for multi cloud deployments with a single command.

pt build automatically packages a service up and creates a declarative artifact with all of the resources needed for deployment.

Build artifacts

When you run pt build, PowerTools builds each of your components and prepares a series of artifacts to push into your cloud account.

Each type of component will correspond to different build artifacts:

static components - each file exposed from the build hook will be pushed into a storage bucket in your cloud account.

serverless components - a container image is created to run your application code, and pushed into a registry in your cloud account.

container components - a container image is built, and pushed into a registry in your cloud account.

Furthermore, a copy of your workspace.yml, service.yml and secrets.yml schemas are added to the build artifact.


Each build is versioned according to the code repository commit hash. This means you can roll back your code to a specific version by simply passing a gitref to pt deploy.

Secrets, configs and schemas are versioned as code for consistent deployment.


When you run pt build, PowerTools creates a build directory and copies your source code into it to prepare for building.

By adding sources: to your service.yml schema, you can copy code from public repositories, other directories and more into your build.

Learn more

Static components

Static components expose a set of files for a build using a build script. The build script runs in a container for your component and is responsible for copying any final artifacts to the /bundle directory.

Each file that is copied into this directory during a build will be packaged with your build. For instance, if you are creating a static site, your build script would simply copy your generated html files into the /bundle directory.

Build hooks

Build hooks allow your team to run linters, test scripts and more on each build.

A hook is a script that runs in the container image for your build. It has access to secret values that are added with the build namespace and can do powerful things such as modify code, minimize static assets and more.

By combining hooks and sources, you can create global linters, test scripts and more for each service in your workspace.