Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Automatically deploy git repositories

Project description

pydeploy

Automatically deploy git repositories

Build Status

Background

I made this tool because I need something to automatically deploy my web services on staging/testing server. However, I don't really need it to be robust like Jenkins. I only need a simple script that just easily customizable, lightweight, and easy to configure.

Installation

pip install pydeploycli

Usage

  1. Create a config file in JSON format like this

    {
        "pre_script": ["echo 1", "echo 2"],
        "post_script": ["python3 app.py"],
        "remote": "<remote>",
        "branch": "<branch>",
        "notifier": {
            "type": "<discord / slack>",
            "receiver": "<webhook>"
        }
    }
    

    pre_script are bash commands that are executed before pull. post_scripts are the same but executed after pull. You can ignore the notifier part if you don't want to be notified. Save this config to file.

  2. Clone your repository, move to your repository directory. If your repository is private, you can store your username & password first or use ssh.

  3. Execute pyDeploy in that directory

    pydeploy "path/to/config/file"
    

    Your webhook will be running on

    http://IP:9999/<endpoint>
    

    endpoint will be printed when you execute pydeploy you can also set your own endpoint by providing --endpoint option

  4. Copy that webhook URL and put it on your github webhook setting. Select the content type to json.

  5. Done! Now your server will automatically pull and execute your predefined script.

Issues? Changes?

Just open an issue/pull request. Thanks

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for PyDeployCLI, version 0.0.3
Filename, size File type Python version Upload date Hashes
Filename, size PyDeployCLI-0.0.3.tar.gz (6.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page