Use per-repo tests with openstack-infra, deduplicating the places where what-to-test is defined
As of now, the tests that are run on each cookbook (Rubocop, FoodCritic, ChefSpec) are specified in macros.yaml of openstack-infra's jenkins job builder:
Strainer would allow us to define _per cookbook_ what should be run; and offer the one true place for easy, reviewed changes.
The downside is what we'd probably, by having only one "bundle exec strainer test" call per cookbook change, lose the quick visual response we have now -- for example: "chef-lint failed, the rest is ok".
Any ideas on how to implement this in a strainer-only way?
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Stephan Renatus
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
- Deferred
- Milestone target:
- None
- Started by
- Completed by
- Jan Klare
Related branches
Related bugs
Sprints
Whiteboard
Maybe this is going to help here:
17:36 < fungi> srenatus: there is work underway to replace jenkins with a more flexible job runner which can return more specific status information on task completion. right now we get "pass" or "fail" so there's no easy way to break that out into a list of discrete states for sub-tasks.
Another option -- to get the tests into the repo and out of JJB -- could be the following kludge:
Add a "run_tests.sh" script into each repo that basically does
```
#!/bin/bash
case "$1" in
style)
ruby1.9.1 /usr/bin/bundle exec rubocop
lint)
...
spec)
# berkshelf
# rspec
```
Gerrit topic: https:/
Addressed by: https:/
Fix Strainerfile
Addressed by: https:/
Fix Strainerfile
Addressed by: https:/
Fix Strainerfile
Addressed by: https:/
Fix Strainerfile
Addressed by: https:/
Fix Strainerfile
Addressed by: https:/
Fix Strainerfile
Addressed by: https:/
Fix Strainerfile
Addressed by: https:/
Fix Strainerfile
Addressed by: https:/
Fix Strainerfile
Addressed by: https:/
Fix Strainerfile
Addressed by: https:/
Fix Strainerfile
Addressed by: https:/
Fix Strainerfile