Header

Stop certain files from being uploaded during a deployment

Tips & Tricks and Tutorials

Thumb1400

Using a service like DeployHQ with Git or another SCM is great for helping streamline your deployment process. However, you may find that there are some files you keep in your repository, or fetch via the build pipeline that don't want to upload to your server, such as dependencies that you're using to compile assets.

Excluded Files

In DeployHQ, we have a feature that is designed with this use case in mind. Within any project, you can set up a list of Excluded Files, which are simply paths to one or more files that DeployHQ will check through and then ignore files that match.

Think of excluded files as a blacklist to stop anything in that list from being modified during the deployment.

Adding an Excluded File

Adding an excluded file is very simple. Head to any project, then click the Excluded Files link on the left hand side, followed by the New Excluded Files button to the top-right:

New excluded file

Enter the file path, relative to how the file is found in your repository then, optionally, choose one of more specific servers to apply the rule to. This is useful if you want to deploy the file to your production server, but not your development server.

Click Create Excluded File, then after that any deployments you run to a server it's applied to will ignore anything that matches.

File patterns

The Excluded File rules can be applied in a number of different ways, beyond just matching a specific file. You can also set up wildcards to exclude files with a certain extension, or within a specific directory.

For example, you might want to stop all yml files from being deployed. Add the following two rules to ignore any yml file both within your root directory, and any subdirectory:

*.yml
**/*.yml

You'll notice the ** in the second rule - because the feature uses pattern matching this means that anything in the path before the leading slash will be matched, so any yml file in a subdirectory will be ignored.

If you want to ignore a whole directory, you can again add two rules that might look like so:

node_modules
node_modules/**

That will ignore node_modules itself, along with any files, or subdirectories found within it.

.deployignore

As well as being able to add excluded file rules to a project, you can also commit the rules to your repository using a .deployignore file.

If you're familiar with .gitignore it works in very much the same way. Simply add the file to your repository's root directory, and place each rule on a new line.

*.yml
**/*.yml

node_modules
node_modules/**

Then, once the file has been committed and pushed to your repository, DeployHQ will detect it and stop any files in exactly the same way. Just remember that the file must be present in the commit you're deploying to, otherwise DeployHQ won't see it when it checks out the repository to deploy it.

We hope this guide has been useful in outlining how to stop files being deployed when you don't want them to be, do let us know if you have any questions.

A little bit about the author

I'm Adam W, or as everyone prefers to call me - Batman. I get a lot of satisfaction out of helping our customers and am committed to making their customer experience as positive as possible. When not offering support to our customers, you'll find me gaming, listening to music or running.