CI build and release scripts for several talsma-ict projects.
This module is intended to be used as a git submodule
.
Our build and release scripts are inspired by the git-flow
branching model
as described by Vincent Driessen in 2010.
This means SNAPSHOT builds can be created from the develop
branch while releases
should be for semver 2.0 compatible versions, tagged as such on the master
branch.
Our build and release scripts allow developers to focus mainly on the develop
and other feature
branches
and should only rarely -if ever- need to meddle with the master
branch.
To perform a release, a developer just needs to push the corresponding code from develop
to a
new release/x.y.z
branch on origin
.
When picked up by the CI system, this results in a new version x.y.z
being released, tagged and deployed on master
.
Furthermore, the develop
branch will be set to the next snapshot version (e.g. x.y.(z+1)-SNAPSHOT
).
If all succeeds, the release/x.y.z
branch will be automatically deleted as well.
First, read the official git documentation on submodules
if you haven't done so already.
Another good read is the working with submodules
github blog post.
(Only if you have an existing directory to replace) First remove the existing directory from your repository
git rm -r .travis
git commit -m "Remove .travis directory (preparing for submodule)"
For the scripts to continue to work (which involves some branch-switching),
it's best to do this on the master
branch and merge the change to develop
from there
or cherry-pick the commits if you like.
If you want to add the ci-scripts to your project into the .travis
directory (for building with travis)
you can add them to your git repository:
git submodule add https://github.com/talsma-ict/ci-scripts.git .travis
git submodule update --init --recursive
git commit -am "Add ci-scripts repository as .travis submodule"
Just use the --recursive
option with your git clone
command:
git clone --recursive <project url>
Just like our main repositories, the CI scripts are published under the Apache 2.0 license