)]}'
{"id":"ci%2Fzuul-jobs-cesnet~2438","triplet_id":"ci%2Fzuul-jobs-cesnet~master~I6eb61669c6f28440a55ba08569a4f2683513a9fa","project":"ci/zuul-jobs-cesnet","branch":"master","topic":"coverage-three-jobs","hashtags":[],"change_id":"I6eb61669c6f28440a55ba08569a4f2683513a9fa","subject":"Use three separate jobs for code coverage diffing","status":"MERGED","created":"2020-04-14 11:42:20.000000000","updated":"2020-04-14 14:50:15.000000000","submitted":"2020-04-14 14:50:15.000000000","submitter":{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"2445-1586875815458-9b0d067d","meta_rev_id":"67cb57963caaf37c3ed125e734e4a495227e0c14","_number":2438,"virtual_id_number":2438,"owner":{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},"actions":{},"labels":{"Code-Review":{"approved":{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},"all":[{"value":2,"date":"2020-04-14 14:03:13.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},{"value":0,"_account_id":1000059,"name":"CzechLight CI","email":"cesnet-zuul+czechlight@gerrit.cesnet.cz","username":"cesnet-zuul-czechlight","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000058,"name":"Zuul CI","email":"cesnet-zuul+public@gerrit.cesnet.cz","username":"cesnet-zuul-public","tags":["SERVICE_USER"]}],"values":{"-2":"This shall not be merged","-1":"I would prefer this is not merged as is"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me, approved"},"default_value":0},"Verified":{"approved":{"_account_id":1000058,"name":"Zuul CI","email":"cesnet-zuul+public@gerrit.cesnet.cz","username":"cesnet-zuul-public","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},{"value":0,"_account_id":1000059,"name":"CzechLight CI","email":"cesnet-zuul+czechlight@gerrit.cesnet.cz","username":"cesnet-zuul-czechlight","tags":["SERVICE_USER"]},{"value":1,"date":"2020-04-14 12:53:41.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000058,"name":"Zuul CI","email":"cesnet-zuul+public@gerrit.cesnet.cz","username":"cesnet-zuul-public","tags":["SERVICE_USER"]}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},{"_account_id":1000058,"name":"Zuul CI","email":"cesnet-zuul+public@gerrit.cesnet.cz","username":"cesnet-zuul-public","tags":["SERVICE_USER"]},{"_account_id":1000059,"name":"CzechLight CI","email":"cesnet-zuul+czechlight@gerrit.cesnet.cz","username":"cesnet-zuul-czechlight","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2020-04-14 11:42:31.000000000","updated_by":{"_account_id":1000059,"name":"CzechLight CI","email":"cesnet-zuul+czechlight@gerrit.cesnet.cz","username":"cesnet-zuul-czechlight","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000059,"name":"CzechLight CI","email":"cesnet-zuul+czechlight@gerrit.cesnet.cz","username":"cesnet-zuul-czechlight","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2020-04-14 11:42:32.000000000","updated_by":{"_account_id":1000058,"name":"Zuul CI","email":"cesnet-zuul+public@gerrit.cesnet.cz","username":"cesnet-zuul-public","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000058,"name":"Zuul CI","email":"cesnet-zuul+public@gerrit.cesnet.cz","username":"cesnet-zuul-public","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"0da1e2fe0de78b6a1548bfc60d332bf476a670e1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},"date":"2020-04-14 11:42:20.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"ab2c3c9dc24a8d105ff07c3ff2ee977b6115ee5a","author":{"_account_id":1000059,"name":"CzechLight CI","email":"cesnet-zuul+czechlight@gerrit.cesnet.cz","username":"cesnet-zuul-czechlight","tags":["SERVICE_USER"]},"date":"2020-04-14 11:42:31.000000000","message":"Patch Set 1: Verified-1\n\nZuul encountered a syntax error while parsing its configuration in the\nrepo CzechLight/cla-sysrepo on branch master.  The error was:\n\n  Job f29-gcc-cover-diff not defined\n\nThe error appears in the following project stanza:\n\n  project:\n      check:\n        fail-fast: true\n        jobs:\n          - clang-format:\n              voting: false\n          - f29-gcc-cover:\n              requires: CzechLight-deps-f29-gcc\n              provides: coverage-f29-gcc\n          - f29-gcc-cover-diff:\n              voting: false\n              requires:\n                - CzechLight-deps-f29-gcc\n                - coverage-f29-gcc\n              dependencies:\n                - f29-gcc-cover\n          - f29-gcc-asan-ubsan:\n              requires: CzechLight-deps-f29-gcc-asan-ubsan\n          - f29-clang-asan:\n              requires: CzechLight-deps-f29-clang-asan\n          - f29-clang-tsan:\n              requires: CzechLight-deps-f29-clang-tsan\n\n  in \"CzechLight/cla-sysrepo/.zuul.yaml@master\", line 1, column 3","accounts_in_message":[],"_revision_number":1},{"id":"7dcb3b2e9ae432586d49fd0805bf85580a394490","author":{"_account_id":1000058,"name":"Zuul CI","email":"cesnet-zuul+public@gerrit.cesnet.cz","username":"cesnet-zuul-public","tags":["SERVICE_USER"]},"date":"2020-04-14 11:42:32.000000000","message":"Patch Set 1: Verified-1\n\nZuul encountered a syntax error while parsing its configuration in the\nrepo CzechLight/netconf-cli on branch master.  The error was:\n\n  Job f29-gcc-cover-diff not defined\n\nThe error appears in the following project stanza:\n\n  project:\n      check:\n        fail-fast: true\n        jobs:\n          - clang-format:\n              voting: false\n          - f29-gcc-cover:\n              requires: CzechLight-deps-f29-gcc\n              provides: coverage-f29-gcc\n          - f29-gcc-cover-diff:\n              voting: false\n              requires:\n                - CzechLight-deps-f29-gcc\n                - coverage-f29-gcc\n              dependencies:\n                - f29-gcc-cover\n          - f29-gcc-asan-ubsan:\n              requires: CzechLight-deps-f29-gcc-asan-ubsan\n          - f29-clang-asan:\n              requires: CzechLight-deps-f29-clang-asan\n          - f29-clang-tsan:\n              requires: CzechLight-deps-f29-clang-tsan\n\n  in \"CzechLight/netconf-cli/.zuul.yaml@master\", line 1, column 3","accounts_in_message":[],"_revision_number":1},{"id":"2a0ddfda2ae79f91ca6d9abf46c5ed974728472d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},"date":"2020-04-14 11:48:37.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"d877971515f67406dac8b89f7f74ac1aa9d66747","author":{"_account_id":1000058,"name":"Zuul CI","email":"cesnet-zuul+public@gerrit.cesnet.cz","username":"cesnet-zuul-public","tags":["SERVICE_USER"]},"date":"2020-04-14 11:48:48.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded.\n\n- noop noop : SUCCESS in 0s","accounts_in_message":[],"_revision_number":2},{"id":"409bbe344f53323560c908b16c3dee73fb6c91bc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},"date":"2020-04-14 11:49:47.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"53f30dfba8c467fcf7afd2221754efe368dec26c","author":{"_account_id":1000058,"name":"Zuul CI","email":"cesnet-zuul+public@gerrit.cesnet.cz","username":"cesnet-zuul-public","tags":["SERVICE_USER"]},"date":"2020-04-14 11:49:57.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded.\n\n- noop noop : SUCCESS in 0s","accounts_in_message":[],"_revision_number":3},{"id":"c7d263fccaf9911d63a9fb0b634e927a70c9807e","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},"date":"2020-04-14 12:38:54.000000000","message":"Topic set to coverage-three-jobs","accounts_in_message":[],"_revision_number":3},{"id":"286afc0aa1032343b454f09a435294b7dcecafbf","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},"date":"2020-04-14 12:53:29.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"808f80abe54ae5d3347e151625961c2f2922b6ba","author":{"_account_id":1000058,"name":"Zuul CI","email":"cesnet-zuul+public@gerrit.cesnet.cz","username":"cesnet-zuul-public","tags":["SERVICE_USER"]},"date":"2020-04-14 12:53:41.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded.\n\n- noop noop : SUCCESS in 0s","accounts_in_message":[],"_revision_number":4},{"id":"495dbc764f2e3cc6cad648c6c247100d2bff2565","author":{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},"date":"2020-04-14 14:03:13.000000000","message":"Patch Set 4: Code-Review+2","accounts_in_message":[],"_revision_number":4},{"id":"67cb57963caaf37c3ed125e734e4a495227e0c14","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},"date":"2020-04-14 14:50:15.000000000","message":"Change has been successfully merged by Jan Kundrát","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"473cdf554151479dcabe13249b4020023713f090","revisions":{"12194bd1bda1bd950e112e3d19be459e77799768":{"kind":"REWORK","_number":1,"created":"2020-04-14 11:42:20.000000000","uploader":{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},"ref":"refs/changes/38/2438/1","fetch":{"anonymous http":{"url":"https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet","ref":"refs/changes/38/2438/1","commands":{"Branch":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/1 \u0026\u0026 git checkout -b change-2438 FETCH_HEAD","Checkout":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/1","Reset To":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"1744cc05425b1fdbd80538e39c1a8825ebed77cb","subject":"Register coverage HTML reports as artifacts","web_links":[{"name":"gitiles","url":"https://gerrit.cesnet.cz/plugins/gitiles/ci/zuul-jobs-cesnet/+/1744cc05425b1fdbd80538e39c1a8825ebed77cb"}]}],"author":{"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","date":"2020-04-14 11:34:33.000000000","tz":120},"committer":{"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","date":"2020-04-14 11:35:30.000000000","tz":120},"subject":"Use three separate jobs for code coverage diffing","message":"Use three separate jobs for code coverage diffing\n\nReusable roles and playbooks are quite important upstream (I have\nzuul-jobs inclusion in mind). Besides that, in Zuul\u0027s Ansible a playbook\nis supposed to come from the same repo as the one where the job\ndefinition is placed, and one can only override a job\u0027s `run` playbook.\nThis makes it rather annoying to modify, say, `tox-coverage` definition.\n\nMy previous approach with a job which performed two things (build the\nold source *and* then generate coverage report) also would not scale\nthat well if the build+test phase is long.\n\nSwitch to three jobs:\n\n- build the current, proposed state, and gather coverage info,\n- build the past state, gather coverage info,\n- download two artifacts from previous runs, reproduce the source trees,\nand generate the final coverage diff report.\n\nSee-also: https://review.gerrithub.io/c/Telecominfraproject/oopt-zuul-jobs/+/489964\nChange-Id: I6eb61669c6f28440a55ba08569a4f2683513a9fa\n","web_links":[{"name":"gitiles","url":"https://gerrit.cesnet.cz/plugins/gitiles/ci/zuul-jobs-cesnet/+/12194bd1bda1bd950e112e3d19be459e77799768"}]},"branch":"refs/heads/master"},"bf605e6ad097ed28e6511d39ef393158e39d41e8":{"kind":"REWORK","_number":2,"created":"2020-04-14 11:48:37.000000000","uploader":{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},"ref":"refs/changes/38/2438/2","fetch":{"anonymous http":{"url":"https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet","ref":"refs/changes/38/2438/2","commands":{"Branch":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/2 \u0026\u0026 git checkout -b change-2438 FETCH_HEAD","Checkout":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/2","Reset To":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"1744cc05425b1fdbd80538e39c1a8825ebed77cb","subject":"Register coverage HTML reports as artifacts","web_links":[{"name":"gitiles","url":"https://gerrit.cesnet.cz/plugins/gitiles/ci/zuul-jobs-cesnet/+/1744cc05425b1fdbd80538e39c1a8825ebed77cb"}]}],"author":{"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","date":"2020-04-14 11:34:33.000000000","tz":120},"committer":{"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","date":"2020-04-14 11:48:23.000000000","tz":120},"subject":"Use three separate jobs for code coverage diffing","message":"Use three separate jobs for code coverage diffing\n\nReusable roles and playbooks are quite important upstream (I have\nzuul-jobs inclusion in mind). Besides that, in Zuul\u0027s Ansible a playbook\nis supposed to come from the same repo as the one where the job\ndefinition is placed, and one can only override a job\u0027s `run` playbook.\nThis makes it rather annoying to modify, say, `tox-coverage` definition.\n\nMy previous approach with a job which performed two things (build the\nold source *and* then generate coverage report) also would not scale\nthat well if the build+test phase is long.\n\nSwitch to three jobs:\n\n- build the current, proposed state, and gather coverage info,\n- build the past state, gather coverage info,\n- download two artifacts from previous runs, reproduce the source trees,\nand generate the final coverage diff report.\n\nSee-also: https://review.gerrithub.io/c/Telecominfraproject/oopt-zuul-jobs/+/489964\nChange-Id: I6eb61669c6f28440a55ba08569a4f2683513a9fa\n","web_links":[{"name":"gitiles","url":"https://gerrit.cesnet.cz/plugins/gitiles/ci/zuul-jobs-cesnet/+/bf605e6ad097ed28e6511d39ef393158e39d41e8"}]},"branch":"refs/heads/master"},"7e2d2ec52adc86e44151ea26327ce38ccf3be162":{"kind":"REWORK","_number":3,"created":"2020-04-14 11:49:47.000000000","uploader":{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},"ref":"refs/changes/38/2438/3","fetch":{"anonymous http":{"url":"https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet","ref":"refs/changes/38/2438/3","commands":{"Branch":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/3 \u0026\u0026 git checkout -b change-2438 FETCH_HEAD","Checkout":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/3","Reset To":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"1744cc05425b1fdbd80538e39c1a8825ebed77cb","subject":"Register coverage HTML reports as artifacts","web_links":[{"name":"gitiles","url":"https://gerrit.cesnet.cz/plugins/gitiles/ci/zuul-jobs-cesnet/+/1744cc05425b1fdbd80538e39c1a8825ebed77cb"}]}],"author":{"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","date":"2020-04-14 11:34:33.000000000","tz":120},"committer":{"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","date":"2020-04-14 11:49:44.000000000","tz":120},"subject":"Use three separate jobs for code coverage diffing","message":"Use three separate jobs for code coverage diffing\n\nReusable roles and playbooks are quite important upstream (I have\nzuul-jobs inclusion in mind). Besides that, in Zuul\u0027s Ansible a playbook\nis supposed to come from the same repo as the one where the job\ndefinition is placed, and one can only override a job\u0027s `run` playbook.\nThis makes it rather annoying to modify, say, `tox-coverage` definition.\n\nMy previous approach with a job which performed two things (build the\nold source *and* then generate coverage report) also would not scale\nthat well if the build+test phase is long.\n\nSwitch to three jobs:\n\n- build the current, proposed state, and gather coverage info,\n- build the past state, gather coverage info,\n- download two artifacts from previous runs, reproduce the source trees,\nand generate the final coverage diff report.\n\nSee-also: https://review.gerrithub.io/c/Telecominfraproject/oopt-zuul-jobs/+/489964\nChange-Id: I6eb61669c6f28440a55ba08569a4f2683513a9fa\n","web_links":[{"name":"gitiles","url":"https://gerrit.cesnet.cz/plugins/gitiles/ci/zuul-jobs-cesnet/+/7e2d2ec52adc86e44151ea26327ce38ccf3be162"}]},"branch":"refs/heads/master"},"473cdf554151479dcabe13249b4020023713f090":{"kind":"REWORK","_number":4,"created":"2020-04-14 12:53:29.000000000","uploader":{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"},"ref":"refs/changes/38/2438/4","fetch":{"anonymous http":{"url":"https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet","ref":"refs/changes/38/2438/4","commands":{"Branch":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/4 \u0026\u0026 git checkout -b change-2438 FETCH_HEAD","Checkout":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/4","Reset To":"git fetch https://gerrit.cesnet.cz/ci/zuul-jobs-cesnet refs/changes/38/2438/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"1744cc05425b1fdbd80538e39c1a8825ebed77cb","subject":"Register coverage HTML reports as artifacts","web_links":[{"name":"gitiles","url":"https://gerrit.cesnet.cz/plugins/gitiles/ci/zuul-jobs-cesnet/+/1744cc05425b1fdbd80538e39c1a8825ebed77cb"}]}],"author":{"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","date":"2020-04-14 11:34:33.000000000","tz":120},"committer":{"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","date":"2020-04-14 12:53:21.000000000","tz":120},"subject":"Use three separate jobs for code coverage diffing","message":"Use three separate jobs for code coverage diffing\n\nReusable roles and playbooks are quite important upstream (I have\nzuul-jobs inclusion in mind). Besides that, in Zuul\u0027s Ansible a playbook\nis supposed to come from the same repo as the one where the job\ndefinition is placed, and one can only override a job\u0027s `run` playbook.\nThis makes it rather annoying to modify, say, `tox-coverage` definition.\n\nMy previous approach with a job which performed two things (build the\nold source *and* then generate coverage report) also would not scale\nthat well if the build+test phase is long.\n\nSwitch to three jobs:\n\n- build the current, proposed state, and gather coverage info,\n- build the past state, gather coverage info,\n- download two artifacts from previous runs, reproduce the source trees,\nand generate the final coverage diff report.\n\nSee-also: https://review.gerrithub.io/c/Telecominfraproject/oopt-zuul-jobs/+/489964\nChange-Id: I6eb61669c6f28440a55ba08569a4f2683513a9fa\n","web_links":[{"name":"gitiles","url":"https://gerrit.cesnet.cz/plugins/gitiles/ci/zuul-jobs-cesnet/+/473cdf554151479dcabe13249b4020023713f090"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"status":"CLOSED","labels":[{"label":"Code-Review","status":"OK","applied_by":{"_account_id":1000000,"name":"Jan Kundrát","email":"jan.kundrat@cesnet.cz","username":"kundrat@cesnet.cz"}},{"label":"Verified","status":"OK","applied_by":{"_account_id":1000058,"name":"Zuul CI","email":"cesnet-zuul+public@gerrit.cesnet.cz","username":"cesnet-zuul-public","tags":["SERVICE_USER"]}}]}],"submit_requirements":[{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dCustom-Rule"],"failing_atoms":[]}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dCustom-Rule"],"failing_atoms":[]}}]}
