README.md in devinstall-1.1.0 vs README.md in devinstall-1.2.0

- old
+ new

@@ -1,9 +1,13 @@ -# Devinstall +# Devinstall [![Gem Version][GV img]][Gem Version] -This is a poor man automatic builder / installer / deployer for packages. +[Gem Version]: https://rubygems.org/gems/devinstall +[GV img]: https://badge.fury.io/rb/devinstall.png + +This is a poor man automatic package builder / installer / deployer. + The build happens on a remote machine (in the future on several remote machines by package type) via external tools rsync and ssh. The packages are installed on the remote machines also via external rsync/scp and sshsudo (until I will implement something more appropriate in Ruby) @@ -72,9 +76,106 @@ or $ pkg-tool upload devinstall --config ./config.yml --env dev-rh This will build and upload package "devinstall" to repository for dev-rh environment as defined in config.yml + +## The config file + +In order to set all the variables and to define commands to do when building or installing you need a configuration file. + +The said config file have simple YAML structure and should define the folowing parameters: + + local: + folder: + temp: + +The folder where the source/prepackaged files are on the local (developer) machine (`:folder`) and the +temporary folder where the generated packages will be downloades + + build: + folder: + command: + provider: + type: + arch: + target: + env: + +In order: + + - the folder where the sources should be copied (might be ignored by some provider_plugins) + + - The command used to build the package (like `make package` or `dpkg-buildpackage`) + + - The provider for the build machine (like the `local` machine or another machine + accessible only by SSH - `ssh` + + - the package type ( `deb`ian, `rpm`, ...) + + - the architecture (might be ignored by some package_plugins) + + - and the folder where the package builder will put the builded packages + + - env define an environment (lyke `prod` or `QA`) for which the package will be built / installed + +Unlike the other parameters env is optional + + install: + folder: + command: + provider: + type: + arch: + env: + repos: + folder: + provider: + type: + arch: + env: + tests: + folder: + command: + provider + env: + +The parameters have the same meaning as for `build:` + `repos` reffers to the package repository + `tests` is optional (DON'T do this) and no tests will be performend if it's missing + + defaults: + type: + env: + +The default `type` and `env` if you don't use command-line switches + + +The order in which the parameters will be searched is: + + - local + +Like: + + packages: + <package_name>: + <type>: + <section>: # like build: or install: + <env>: + <parameter>: <value> + + + - or global: + +Like + + <section>: + <env>: + <parameter>: value + +The parameters speciffied per package have priority over the global ones + +In any case `env` is optional ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`)