2

Developer team has specific requirements for tools. [I have] [read] [a lot] [about] [ideal] [workflows] and came up with something that works like this:

  1. Developer creates a change request, hotfix, feature, etc in Jira. That unique item id will be tracked along the work flow.
  2. Developer pulls repo from Git, creates a feature-a branch, commit changes locally and pushes to remote git repo. Pushes to master are forbidden.
  3. Git hook triggers a Jenkins job which runs a smoke test (compilation and unit tests). If tests pass then creates a revision in Crucible.
  4. Unless code review committee approves changes, we have to start from step (1). Crucible triggers a Jenkins job.
  5. Jenkins auto merges to master. If it fails then a manual merge is required and go back to step (2). Review step (4) might be bypassed.
  6. Jenkins starts QA tests (integration tests, static analysis, system tests, IP scan, etc.).
  7. Gatekeeper (or senior developer) promotes that particular commit for release candidate.

Jenkins has a lot of plugins but nothing that works out-of-the-box. I need to develop many connectors (Jenkins-Crucible, Jenkins-Git for auto-merge). Changing tools is not an option.

How can I simplify the workflow?

betodelrio
  • 308
  • 2
  • 11
  • did you think about a pull requests in **Stash** instead of using **Crucible**? – Yuri G. Jul 06 '15 at 05:36
  • I'd recommend running your tests before merging the changes into master (Step 6). Ideally, master should be shippable at any time. I'd also re-think the gatekeeper - they can become a bottleneck – Brendan Jul 06 '15 at 13:56

0 Answers0