A simple build tool.
A bit like travis, but simpler and Open Source.
Concept: build tools suck or are expensive and clicky-draggy
As a developer I want:
- a simply yaml format configuration for builds
- a cheap open-source build tool
- not too clicky-draggy
- decentralised workers that can be run on any machine (allow a swarm of developers to build their own software without relying on a central limited (expensive) set)
- shell based, so that we can docker all the things
docker-compose up
python setup.py install
wobserver start
- browse to
http://localhost:5000
- This is the public interface
Development
cd client;PYTHONPATH=$PYTHONPATH:$PWD python client/wobbuild/main.py ~/p/abridge-bot/.wobbuild.yml
OR Installed
cd client;python setup.py install
wobbuild ~/p/abridge-bot/.wobbuild.yml --target http://localhost:5000
start the worker (celery)
python setup.py install
wobbuilder start --broker http://localhost:6379 --loglevel debug
Copy this example into one of your projects
language: java
clean: false
async: true
#
# Vars gets merged with the GLOBAL_VARS params
#
vars:
A_VARIABLE: 'foo'
A_VARIABLE_AGAIN: 'bar'
#
# Match up the build_groups with the appropriate git branches
#
build_group_matcher:
master: master
feature: feature/ITDEV-(\d+)
release: release/(.+)
#
# Master Branch
# Usually For deploy
#
master:
before_steps:
- echo "Message to slack"
# - n v7.5.0
# - cd patternlab;npm install
build:
do: true
steps:
- cd patternlab;npm test
- cd patternlab;npm publish
publish:
do: true
steps:
- echo "Upload to artifactory"
deploy:
do: true
steps:
- echo "Deploy using whatever"
- echo "Step required"
final_steps:
- echo "Message to slack"
- echo "send email"
#
# Feature branches
# Usually just get tested built and packaged
#
feature:
before_steps:
- echo "Message to slack"
# - n v7.5.0
# - cd patternlab;npm install
build:
do: true
steps:
- cd patternlab;npm test
- cd patternlab;npm publish
publish:
do: true
steps:
- echo "Upload to artifactory"
deploy:
do: false
steps:
- echo "Upload to artifactory"
final_steps:
- echo "Message to slack"
#
# Release branch steps
# Releases usually involve a publish step
#
release:
before_steps:
- echo "Message to slack"
# - n v7.5.0
# - cd patternlab;npm install
build:
do: true
steps:
- cd patternlab;npm test
- cd patternlab;npm publish
publish:
do: true
steps:
- echo "Upload to artifactory"
deploy:
do: false
steps:
- echo "Upload to artifactory"
final_steps:
- echo "Message to slack"
yes yes.. im not a designer. aint no body got time for dat.
- Tests
- Package Client
- Pipeline Schema validation
- Integrate with artifactory
- Build Deploy process (call salt command with appropriate values)