# Deno build process ## Build process overview Zerops starts a temporary build container and performs the following actions: 1. **Installs the build environment** - Sets up base system and Deno runtime 2. **Downloads your application source code** - From [GitHub ↗](https://www.github.com), [GitLab ↗](https://www.gitlab.com) or via [Zerops CLI](/references/cli) 3. **Optionally customizes the build environment** - Runs prepare commands if configured 4. **Runs the build commands** - Executes your build process 5. **Uploads the application artifact** - Stores build output to internal Zerops storage 6. **Caches selected files** - Preserves specified files for faster future builds The build container is automatically deleted after the build has finished or failed. ## Build configuration Configure your Deno build process in your `zerops.yaml` file according to the [full build & deploy Deno pipeline guide](/deno/how-to/build-pipeline). ## Build environment ### Default Deno build environment The default Deno build environment contains: - Ubuntu 24.04 - Selected version of Deno defined in `zerops.yaml` [build.base](/deno/how-to/build-pipeline#base) parameter - [zCLI](/references/cli), Zerops command line tool - Deno and Git ### Customize build environment To install additional packages or tools, add one or more [build.prepareCommands](/deno/how-to/build-pipeline#preparecommands) to your `zerops.yaml`. :::info The application code is available in the `/var/www` folder in your build container before the prepare commands are triggered. This allows you to use any file from your application code in your prepare commands (e.g. a configuration file). ::: ### Build hardware resources All runtime services use the same hardware resources for build containers:
HW resource Minimum Maximum
CPU cores 1 5
RAM 8 GB 8 GB
Disk 1 GB 100 GB
Build containers start with minimum resources and scale vertically up to maximum capacity as needed. :::info Build container resources are not charged separately. Limited build time is included in your [project core plan](/company/pricing#project-core-plans), with additional build time available if needed. ::: ### Build time limit The time limit for the whole build pipeline is **1 hour**. After 1 hour, Zerops will terminate the build pipeline and delete the build container. ## Troubleshooting Deno builds ### Build command failures If any [build command](/deno/how-to/build-pipeline#buildcommands) fails (returns non-zero exit code), the build is canceled. Check the [build log](/deno/how-to/logs#build-log) to troubleshoot the error. For Deno, if the error log doesn't contain specific error messages, try running your build with verbose output: ```yaml buildCommands: - deno cache main.ts - deno compile --allow-net --allow-read main.ts ``` ### Prepare command failures If any [prepare command](/deno/how-to/build-pipeline#preparecommands) fails, check the [build log](/deno/how-to/logs#build-log) for specific error messages. Common issues include: - Missing permissions in Deno commands (add --allow-net, --allow-read, etc.) - Ubuntu package installation failures (use sudo apt-get update first) - Deno cache directory permissions ### Build cache issues If you encounter unexpected build behavior or dependency issues, the problem might be related to [cached build data](/features/build-cache). While Zerops maintains the build cache to speed up deployments, sometimes you may need to start fresh. To invalidate the build cache: 1. Go to your service detail in Zerops GUI 2. Choose **Pipelines & CI/CD Settings** from the left menu 3. Click on the **Invalidate build cache** button This will force Zerops to run the next build clean, including all prepare commands. Learn more about [build cache behavior](/features/build-cache). :::tip Advanced troubleshooting For complex build issues that require investigation, you can enable [debug mode](/features/debug-mode) to pause the build process at specific points and inspect the build container state interactively. ::: ## More resources For more details about the build and deploy pipeline, including how to cancel builds and manage application versions, see the [general pipeline documentation](/features/pipeline). ## Next steps - Understand the [deployment process](/deno/how-to/deploy-process) - Learn how to [customize the runtime environment](/deno/how-to/customize-runtime) - Explore [build and runtime logs](/deno/how-to/logs)