About Deployments

Buddy supports all popular deployment protocols, custom scripts, and IaaS/PaaS services, including (but not limited to) those listed on the screenshot below.

Image loading...Buddy deployment actions

Deploy of repositories and artifacts

Each pipeline has its own filesystem. When the pipeline is run, your repository is cloned to the pipeline filesystem in the selected revision. This way, the actions which build the application have action to the repository files. The built application can then be deployed from the filesystem to the server.

When configuring a deployment action, most actions let you decide if you want to upload only raw repository files, or repository files with processed files, generated artifacts, and static files. In order to upload all files, select Pipeline Filesystem as the source:

Image loading...Choosing filesystem source

Hint
If no Git-based context or triggers are configured, the source defaults to Repository. In such cases, the filesystem source selection is not available. Learn more about pipeline contexts.

Deploy of configuration files

There are some types of files that should not be stored in the repository, but still need to be deployed – for example database configs. In this case, you can upload them manually to the pipeline filesystem in the Filesystem tab of the pipeline.

Click the three dots menu or the "Add file" button and select "Upload files..." to add files, or "Create a new directory..." to create folders. They will be marked as static files and deployed to the server with the rest of the files:

Image loading...Configuration files deployment

Learn more about managing static files in the pipeline filesystem.

Deploy only changed files

In Buddy, most deployment actions are based on changesets. This means only the files from the current revision are deployed, which drastically reduces the time of upload. This refers to both repository and filesystem deployments.

Hint
A changeset contains the differences between previous and current revisions (versions) of files in the repository.

Deploy from scratch

If you want to deploy all files instead of changed files only, check the Upload everything from scratch option in the OPTIONS section when running the pipeline:

Image loading...Pipeline execution settings

Hint
If you want to deploy the whole repository on every run, check Force deployment & file transfer actions to upload everything from scratch option in the ON RUN section of the pipeline settings.

Deploy to the specified revision

Sometimes you inherit a legacy server with already deployed files on it. If you don't want to upload everything from scratch on the first deployment, you can set the currently deployed revision in the CURRENT COMMIT ON TARGETS section of the Transfer tab:

Image loading...Deploying to specific revision

Ignore files and folders on deployment

At times, you may want to left out some files or folders in your repository, eg. SASS files that are compiled to CSS, or entire directories like node_modules. Use the ignore files and ignore folder options to exclude specific files and folders from deployment. This feature is available at the bottom of the deployment action window in actions such as Transfer, AWS S3, Heroku, Netlify, Google Cloud Storage, Rsync, or other deployment actions:

Image loading...Ignore paths section

The ignore functionality consists of two sections. Click the + button next to Ignore files using paths and patterns to expand the input fields for both sections:

  • Ignore files using paths and patterns: Enter files and directories to exclude from transfer. See pattern syntax below for supported patterns.
  • Exclude from ignore: Define exceptions from the ignore patterns above.
Warning

For actions using git push as the deployment method (eg. Azure, Heroku, Git Push), file ignore is handled via .gitignore files.

Hint
The .git directory is ignored by default in deployment actions. If you want to deploy it, add it to the excludes section.
Tip
You can also exclude files from ignore paths, for example if you want to deploy a specific type of files, but only from one directory.

Pattern syntax

Use the following patterns to exclude files and folders from deployment. You can ignore individual files, entire folders, or use wildcards to match multiple files and directories:

Pattern Description
config All files named 'config'
*.png All PNG files
/config All files named 'config' located in the ROOT directory
/config/ All files in the directory 'config' located in the ROOT directory
dir/name* All files starting with 'name' in the 'dir' directory
/dir/name* All files starting with 'name' in the 'dir' directory in the ROOT directory
test* All files starting with 'test'
test*/ All directories starting with 'test'
/test*/ All directories starting with 'test' located in the ROOT directory

Common examples

Here are some typical patterns used in deployments:

  • node_modules/ - Exclude Node.js dependencies folder
  • .env - Exclude environment configuration files
  • *.log - Exclude all log files
  • .DS_Store - Exclude macOS system files

Custom deployment script

If your deployment process requires a custom script, you should commit the script to the repository and run it using a build action in Buddy.

Hint
If you run deployment using scripts enclosed in your own Docker image, you can use the Run Image action.

YAML and API

Configure deployments programmatically using YAML or REST API:

Last modified on Nov 12, 2025

Recommended