Initial: internal jenkins server at novatec
In the beginning at least some jobs will stay on NovaTec internal Jenkins server, currently this is:
- inspectIT integration job
- inspectIT release job
- weekly loadtest job
With Atlassian providing us with an Open Source no cost Cloudversion of a Bamboo master server, we use this technology for continuous integration tasks. The build nodes are Amazon EC2 instances, sponsored by NovaTec GmbH (see /wiki/spaces/IN/pages/1867778).
Current jobs on Bamboo
Job | Link to Bamboo |
---|---|
DVDStore Release | https://inspectit-performance.atlassian.net/builds/browse/DVD-DVD |
Meaningful usage of EC2 in Bamboo
- We automatically shutdown EC2 instances in Bamboo after the builds are run (you can also shut the instances down manually)
- We configure to use spot instances whenever possible for building things.
This said, if we see that we need more power or cannot wait for spot instances, it is absolutely fine to change the configuration.
Just a few notes:
- https://confluence.atlassian.com/display/BAMBOO/Using+plan+branches
Using automatic merging
- Gatekeeper: This could be used on an integration job to merge changes to the stable if the job succeeds
- Use automatic branches
- Bamboo can automatically create plans and run them for feature branches.
- These feature branches - if named correctly - can automatically be correlated with the JIRA ticket and the result of the build will automatically be shown in the ticket itself
- This is a great option for developers to automatically and directly see if their changes work
- This is also great for integration managers. We can have this before an integration even gets to the integration manager. (<-- we should think on how this can be achieved). Basically I think this can be done by auto-branches and auto-merging against master. The developer then manually starts the job to merge to master and this will only work if the job runs through and only then will he request the integration officially, which will then be manually checked by an integration manager and automatically be pushed via another job to stable.
- Branch Updater process is also great
- This allows to automatically merge changes from stable to a feature branch and thus shows if this is still a valid feature or if something needs to be changed.