Git Repository Deployment¶
You can use the globalrepo service to deploy Git repositories to the server.
Tip
This feature is not designed to roll out your application. You can still clone repositories manually via SSH or through a CI job, which will be better in most use cases. If in doubt, contact us, and we will help you select the best approach.
Options¶
ensure¶
present enable repository
absent disable and remove the repository
default: present
source¶
Repository source address, e.g. git@git.example.net:myproject.git
you can add a hash of multiple sources and select the appropriate one through the remote parameter
path¶
local path where the data ends up on the server
default: /opt/global/<name>
revision¶
desired Git revision (commit-id)
ssh_private_key¶
SSH private key used to fetch a private repository
default: empty
Tip
Use cat /tmp/private_key | python3 -c "import json,sys; print(json.dumps(sys.stdin.read()))"
to convert a key into a single line with escaped line breaks. Make sure the string ends with
a line break, otherwise SSH will be unable to load the key.
exec_after¶
command executed after update, e.g. composer update
default: empty
Minimal configuration¶
Use the Custom JSON at the Server Level Configuration.
{
"globalrepo::repo": {
"myproject": {
"source": "git@git.example.net:myproject.git",
"revision": "7151c3ebb6bf624388528853afb1613e6543021c"
}
}
}
Full example¶
Use the Custom JSON at the Server Level Configuration.
{
"globalrepo::repo": {
"myproject": {
"ensure": "present",
"source": "git@git.example.net:myproject.git",
"path": "/opt/global/myproject",
"revision": "7151c3ebb6bf624388528853afb1613e6543021c",
"ssh_private_key": "ssh-private-key",
"exec_after": "composer update"
}
}
}