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
When you run
pt build, PowerTools builds each of your components and prepares a series of artifacts to push into your
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
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
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
sources: to your
service.yml schema, you can copy code from public repositories, other directories and
more into your build.
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
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
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
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.