diff --git a/README.md b/README.md index 9300b0a..d14b043 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,39 @@ # ironsmith -Ironsmith is a simple continuous integration (build - > test -> release) tool. \ No newline at end of file +Ironsmith is a simple continuous integration (build - > test -> release) tool. + + +## How it works + +You'll setup a project which will need the following information: + +1. Script to pull from the repository + * Most of the time this will be a git clone call, but it can be a bash script calling an FTP or whatever + * Choose between polling for changes, or triggered builds + * Triggered builds will be triggered off of a web hook POST call +2. Script to build the repository + * Can have multiple scripts run in sequence +3. Script to test the repository + * Can have multiple scripts run in sequence +4. Script to build the release file + * Should create one file +5. Path to the release file +6. Script to set release name / version + * If script doesn't return a unique name, ironsmith will append a timestamp + +Projects will be defined in a project.json file for now. I may add a web interface later. + + +Ironsmith will take the information for the defined project above and do the following + +1. Create a directory for the project +2. Change to that directory +2. Create a bolt DB file for the project to keep a log of all the builds +3. Run an initial pull of the repository using the pull script +4. If pull succeeds, Run the Build Scripts +5. If build succeeds, run the test scripts +6. If test succeeds, run the release scripts +7. Load the release file into project release folder with the release name +8. Insert the release information and the complete log into the Bolt DB file + +This tool will (originally at least) have no authentication. I plan on adding it later.