Deployments

The last step of the Continuous Deployment process is deploying the code to a server. Buddy supports all popular deployment protocols and IaaS/PaaS services, including custom deployment scripts and tools.

Buddy deployment actons

Deploy of repositories and artifacts

Each pipeline has its own filesystem. During the execution, the repository with a specific revision is cloned to the pipeline filesystem. The pipeline actions that build the application are run in the context of this filesystem.

When configuring a deployment action, Buddy lets you decide if you want to upload only repository files, or repository files with artifacts and files processed by previous build actions. In order to upload all files, choose Pipeline Filesystem as the source: Choosing a filesystem source

Deploy of configuration files

There are some types of files that should not be stored in the repository, but still need to be deployed (eg. database configs). In this case, you can upload them to the pipeline filesystem. They will be marked as static files and deployed to the server with the rest of the files. Configuration files deployment

If you choose the filesystem as the deployment source, then the static files uploaded to the pipeline will be deployed as well.

Deploy only changed files

In day-to-day development, uploading changes to the server on every push is a common practice. The faster the deploy, the more time can be spent on coding. In Buddy, 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.

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

Deploy from scratch

If you want to deploy all files instead of changed files only, check Upload everything from scratch when running a new execution: Pipeline execution settings

If you always want to deploy the whole repository, check Always deploy files from scratch in 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 pipeline settings: Deploying to a specified revision

Ignore files on deployment

At times you may want to left out some files in your repository, eg. SASS files that are compiled to CSS. The option is available in the dedicated tab of deployment actions: Ignore paths tab

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

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.

Syntax

PatternActions
configall files named ‘config’
*.pngall PNG files
/configall files named ‘config’ located in the ROOT directory
config/all directories named ‘config’ together with their contents
/config/the directory named ‘config’ located in the ROOT directory together with its contents
dir/name*all files starting with ‘name’ in the ‘dir’ folder
/dir/name*all files starting with ‘name’ in ‘dir’ folder located 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

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.

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

See also