Toolkit for agile development with python, git, github, docker and aws
Badges: | |
---|---|
Master CI: | |
Downloads: | http://pypi.python.org/pypi/pulsar-agile |
Source: | https://github.com/quantmind/pulsar-agile |
Mailing list: | google user group |
Design by: | Quantmind and Luca Sbardella |
Platforms: | Linux, OSX, Windows. Python 3.5 and above |
Keywords: | git, github, python, aws, release, documentation |
CONTENTS
This is a python package for aiding deployment and dev-ops type operations on the local machine. To install the package you need python 3.5 or above:
pip install -U pulsar-agile
Once installed, create the play.py
script inside of your repository:
if __name__ == '__main__':
from agile.app import AgileManager
AgileManager(description='Release manager for my package').start()
and create the agile.json file along side it.
Check tasks available:
python play.py -l
When running tasks, the logging level is by default set to info. For a more
verbose logging pass --log-level agile.debug
.
Pulsar agile contains two commands which interacts with github:
- labels
- release
Before using github commands one needs to configure the .gitconfig
file by adding the username
and the token
. The token
is obtained from github from the
personal access tokens page:
[user] email = ... username = lsbardel token = bqedoeunzplesw52tme00zwuj2lhbjr8emrbrxax
Keep labels consistent across repositories. To add a label command create the labels entry in the agile.json file:
{
"labels": {
"group1": {
"repositories": [
"quantmind/pulsar-agile",
"quantmind/pulsar-cloud"
],
"labels": {
"aws": "e47911",
"benchmark": "006b75"
}
}
},
"tasks": {
"repo-labels": {
"description": "Update labels in all repositories",
"command": ["labels"]
}
}
}
and run the repo-labels
command:
python play.py repo-labels
Release dry run:
python play.py release
Release push:
python play.py release --push
Copy files over an Http connection. For example:
"httpcopy": { "sockjs": { "src": "https://cdnjs.cloudflare.com/ajax/libs/sockjs-client/{{ sockjs_version }}/sockjs.js", "target": "/media/" } }
Compile scss files using SASS
Run arbitrary commands on the shell
Transform jinja2 templates files into new files with context dictionary given in the agile.json
or other json files. It can also replace ad-hoc string via the replace
directive.
To run unit tests, create a test_config.py
file alongside this file and add
the following two entries:
import os
os.environ['GITHUB_USERNAME'] = "<username for token>"
os.environ['GITHUB_TOKEN'] = "<generate one from https://github.com/settings/tokens>"
os.environ['GITHUB_TEST_REPO'] = "<username>/<reponame>"