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.
Here you can find the list of articles with configuration instructions for every service and deployment protocol:
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:
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.
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:
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:
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:
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.
|all files named ‘config’|
|all PNG files|
|all files named ‘config’ located in the ROOT directory|
|all directories named ‘config’ together with their contents|
|the directory named ‘config’ located in the ROOT directory together with its contents|
|all files starting with ‘name’ in the ‘dir’ folder|
|all files starting with ‘name’ in ‘dir’ folder located in the ROOT directory|
|all files starting with ‘test’|
|all directories starting with ‘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.