This extension enables Aquifer to deploy builds of an Aquifer project to a git repository. This makes it easy to deploy Drupal websites to Pantheon, Acquia, or any repository host.
To install aquifer-git, run the below command from within your Aquifer project:
aquifer extension-add aquifer-git
This extension also requires that you have Git installed on your development environment and are able to access and push to the remote repository you are deploying to.
This extension adds a deploy-git
command to your Aquifer project. When run, it will checkout a git repository, build the current project into the repository, commit the changes, and push to the origin.
There are a few flags and configuration options which allow you to specify the repository, branch, commit message, and build root folder:
-r --remote
- Repository that this command should deploy to.-b --branch
- Branch within the remote that this command should deploy to.-m --message
- Message that will be applied to the deployment commit.-f --folder
- Folder within the remote repository in which the project should build. (For instance, this should bedocroot
when deploying to an Acquia repository).-n --name
- Name to use for the deployment commit signature. If name is specified, email is also required.-a --email
- Email to use for the deployment commit signature. If email is specified, name is also required.
All of these options can be set within aquifer.json
so you do not have to specify the flags/values every time you would like to run deploy-git
. To learn more about setting these options, read the Configuration section of this document.
If your git repository is using SSH keys for authentication, make sure that your ssh key has been added to the ssh-agent. See github's documentation for more information.
aquifer deploy-git -r "[email protected]:repositoryname.git" -b "master" -m "Version 2.0" -f "docroot"
The options for deploy-git
can be set in your project's aquifer.json
file so you do not have to specify them every time you run deploy-git
.
The remote repository to deploy to.
The branch on the remote repository to deploy to.
A subfolder within the repository to build into.
The name to include in the commit signature.
The email to include in the commit signature.
This is deprecated in favor of the addLinks option.
An array of objects containing a src
and dest
property. These files will be copied from src
to dest
after the build and before deploying.
An array of destination directories to exclude when copying linked project directories to build targets. The default is ["sites/default/files"]
to ensure the files directory (which is sometimes quite large) is excluded when building for deployment.
An array of objects containing src
, dest
, and type
properties. These files or directories will be copied from src
to dest
during the build.
An array of patterns indicating what should be deleted when clearing the cloned repository in preparation for the new build. The default is ["*", "!.git"]
which deletes everything except the .git
directory.
in your aquifer.json
file:
...
"extensions": {
"aquifer-git": {
"source": "aquifer-git",
"config": {
"remote": "[email protected]:repositoryname.git",
"branch": "master",
"folder": "docroot",
"name": "Deploy Bot",
"email": "[email protected]",
"deploymentFiles": [
{
"src": "deploy/.gitignore",
"dest": ".gitignore"
},
{
"src": "deploy/.htaccess",
"dest": ".htaccess"
}
],
"excludeLinks": ["sites/default/files"],
"addLinks": [
{
"src": "path/to/dir/in/project",
"dest": "path/to/dir/in/build",
"type": "dir"
}
],
"delPatterns": ["*", "!.git"]
}
}
}
...