Merge lp://staging/~sinzui/ci-director/pub-win-jobs-be-resourceful into lp://staging/ci-director
Status: | Merged |
---|---|
Merged at revision: | 120 |
Proposed branch: | lp://staging/~sinzui/ci-director/pub-win-jobs-be-resourceful |
Merge into: | lp://staging/ci-director |
Diff against target: |
246 lines (+109/-23) 4 files modified
cidirector/cidirector.py (+7/-12) cidirector/storage.py (+20/-1) cidirector/tests/test_cidirector.py (+24/-10) cidirector/tests/test_storage.py (+58/-0) |
To merge this branch: | bzr merge lp://staging/~sinzui/ci-director/pub-win-jobs-be-resourceful |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Aaron Bentley (community) | Approve | ||
Review via email: mp+227264@code.staging.launchpad.net |
Description of the change
This branch addresses the case where the publication and both win jobs are created even though they were configured to be resourceful. The state file had the old jobs and the new jobs. ci-director saw the entry for the resourceful job and started a build. When it completed, the specialised job got the status update...so ci started the resourceful job again. I unconfigured the publish-revision job and both win jobs to restore CI operation. All other jobs are configured; I am confident the group-name, requires, conflicts, and failure-threshold work. We are not using the test/functional
I believe CIDirector.
I Found that adding "data.setdefaul
I changed current_
I changed update_builds() to use iter_grouped_jobs() to find all the jobs (that exist at that moment), then only add the specialized jobs when the resourceful statefilejob didn't exist. Note that I made the publicationjob subordinate to the "current_version is not None" block. There was no test failures when changed the indentation. I also tested the indentation change with the previous rules and didn't see a test change. I deleted test_update_
5 tests failed when I changed update_builds(). The tests related to update_
Hi Aaron.
I have made several simplifations largely from your encouragement to push the resourceful job detection into the state-file. build_windows_ installer_ job() and sf.get_ windows_ deploy_ job()
* We can trust that sf.publication_jib, sf.get_
will return the job created by ResourcefulJob.
* Note that I remove the guard for pub_job being None because it cannot be done when subordinate to
if current_version is not None:
* With my change to summary in my previous branch, the jobs are hashable so that I can use a set()
to gather all jobs.
* Reverted other changes to CIDirector and its tests since it didn't need extra logic to filter duplicate jobs.