65c489c920
Fixed several issues, and ran a basic test on ironsmith itself. Need to prevent subsequent builds on same versions |
||
---|---|---|
datastore | ||
.gitignore | ||
cycle.go | ||
exec.go | ||
LICENSE | ||
log.go | ||
main.go | ||
project.go | ||
README.md | ||
server.go |
ironsmith
Ironsmith is a simple continuous integration (build - > test -> release) tool.
How it works
You'll setup a project which will need the following information:
- Script to fetch 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
- Script to build the repository
- Script to test the repository
- Script to build the release file
- Path to the release file
- Script to set release name / version
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
- Create a directory for the project
- Change to that directory
- Create a bolt DB file for the project to keep a log of all the builds
- Run an initial pull of the repository using the pull script
- If pull succeeds, Run the Build Scripts
- If build succeeds, run the test scripts
- If test succeeds, run the release scripts
- Load the release file into project release folder with the release name
- 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.
To add a new project, add a .json file to the projects/enabled folder. Look at the template.project.json file in the projects folder for an example.