tinyci (as in Tiny CI) is an experimental CI tool I created for personal usage. It basically pulls files from a repository and copies them to a specific location. Process can be triggered with a webhook. Specific files and folders can be ignored with patterns.
Other than python packages in requirements.txt
file, rsync
and git
are also required.
## Usage
Create a folder under projects
containing a config.yaml
file.
Example config.yaml
# git repo to pull. branch default is master.
git:
url: [email protected]:ulasozguler/tinyci.git
branch: master
# where the files will be copied (can be a remote address)
target: /var/web/tinyci
# ignore files/folders with rsync's --exclude param syntax
ignore:
- uploads/*
Users are saved to a file called users
in the root folder.
Add a line like username,pass_md5_hash
for user management.
Super sophisticated stuff.
Something like http://user:[email protected]:8080/projects/<projectname>/deploy
can be used with a webhook.
## Improvements
- Slack/email notifications
- Custom script support for pre/post deployment
## Notes
- If you have never connected to your repo host from your server before, you may need to manually make the host authenticity verification for the first time.
- Nothing is tested, everything can go to hell pretty fast.