Deploy your project automatically when git branch was updated via GitHub or BitBucket webhooks.
Install deployserver from pip.
$ pip3 install deployserver
To start your first autodeploy daemon you need to create deploy.py script file in your project.
import deployserver
deployserver.init({
'server_address': 'http://mydomain.com',
'port': 1234,
'deploy': 'cd /var/www/myProject;' \
'git pull;'
})
To start autodeploy with multiple branches
import deployserver
deployserver.init({
'server_address': 'http://mydomain.com',
'port': 1234,
'branches': [
{
'name': 'master',
'script': '/var/www/myProject/master-deploy.sh'
},
{
'name': 'deploy/test',
'script': '/var/www/myProject/test-deploy.sh',
},
{
'regexp': r'feature/.*',
'script': '/var/www/myProject/feature-deploy.sh'
}
]
})
Then you need to run this script.
$ python3 deploy.py
If you want to run autodeploy daemon in background, use Screen.
$ screen -dmS deployserver_myProject python3 deploy.py
Screen docs: https://www.gnu.org/software/screen/manual/screen.html
Currently support three types of webhooks:
Send HTTP POST request to the callback URL with JSON payload.
{
"branch": "master",
}
For initiation deployserver params dict is required.
Enter a domain name for this server with http protocol.
'server_address': 'http://mydomain.com'
'server_address': 'http://8.8.8.8'
'server_address': 'http://0a1b2c3d.ngrok.io'
deployserver will listen this local port.
'port': 2345
Bash commands sequence which should be initiated on branch update.
'deploy': 'cd /var/www/myProject;' \
'git pull;'
'deploy': '/var/www/myProject/deploy.sh'
deployserver will listen this local address (default 0.0.0.0).
'host': '127.0.0.1'
Which branch push event should initiate deploy function.
# default
'branch': 'master'
'branch': 'current-sprint'
'branch': 'ver2'
Callback uri.
# default
'uri': '/callback'
'uri': '/'
Secret token. Check if it is set.
# default
'secret_token': None
'secret_token': 'a96529a4af7864e7f6e11035d10b7db5'
- Python >= 3.5
- aiohttp
- asyncio
Repository: https://github.com/codex-team/deployserver
Report a bug: https://github.com/codex-team/deployserver/issues
PyPI Package: https://pypi.python.org/pypi/deployserver
CodeX Team: https://ifmo.su