)]}'
{"doc/source/user/howtos/test-jobs.rst":[{"author":{"_account_id":6889,"name":"Fabien Boucher","email":"fboucher@redhat.com","username":"fabien-boucher"},"change_message_id":"0be2ce2d70f9103962c0314ae650cf2797eef5b4","unresolved":false,"context_lines":[{"line_number":72,"context_line":"pipeline and testing should only happen on the tenant that is gating the project."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"If the `org-jobs` repository is meant to be shared by multiple tenants, then"},{"line_number":75,"context_line":"the test-org-test definition should not be set in the global zuul.yaml."},{"line_number":76,"context_line":"Instead, the tenant responsible of testing will load the `org-jobs` project"},{"line_number":77,"context_line":"using this tenant configuration:"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_662858e1","line":75,"updated":"2019-08-20 15:08:12.000000000","message":"in the default .zuul.yaml or zuul.d/.","commit_id":"a21c830d3c60c91cc2b3a5b281fa11fc3f51bd08"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"230a547191f03927c818819ce24973f8d60ccfcb","unresolved":false,"context_lines":[{"line_number":72,"context_line":"pipeline and testing should only happen on the tenant that is gating the project."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"If the `org-jobs` repository is meant to be shared by multiple tenants, then"},{"line_number":75,"context_line":"the test-org-test definition should not be set in the global zuul.yaml."},{"line_number":76,"context_line":"Instead, the tenant responsible of testing will load the `org-jobs` project"},{"line_number":77,"context_line":"using this tenant configuration:"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_2156ca2b","line":75,"in_reply_to":"7faddb67_662858e1","updated":"2019-08-20 15:46:10.000000000","message":"Done","commit_id":"a21c830d3c60c91cc2b3a5b281fa11fc3f51bd08"},{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"bffe2607a48a56f4b26d6e3495d7d4740974bf15","unresolved":false,"context_lines":[{"line_number":107,"context_line":"Third Party Ci Test Job"},{"line_number":108,"context_line":"-----------------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"As a foreign tenant, a job can be defined to provided third party CI results"},{"line_number":111,"context_line":"to the tenant hosting the jobs."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":".. code-block:: yaml"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_d67834f9","line":110,"updated":"2019-08-14 15:26:31.000000000","message":"to provide","commit_id":"a21c830d3c60c91cc2b3a5b281fa11fc3f51bd08"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"c7fe3ec141602cc64c96c4470f8bdc46fdef8aa6","unresolved":false,"context_lines":[{"line_number":107,"context_line":"Third Party Ci Test Job"},{"line_number":108,"context_line":"-----------------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"As a foreign tenant, a job can be defined to provided third party CI results"},{"line_number":111,"context_line":"to the tenant hosting the jobs."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":".. code-block:: yaml"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_61ccc269","line":110,"in_reply_to":"7faddb67_d67834f9","updated":"2019-08-20 15:36:55.000000000","message":"Done","commit_id":"a21c830d3c60c91cc2b3a5b281fa11fc3f51bd08"},{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"bffe2607a48a56f4b26d6e3495d7d4740974bf15","unresolved":false,"context_lines":[{"line_number":111,"context_line":"to the tenant hosting the jobs."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":".. code-block:: yaml"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"   # other-tenant-jobs/zuul.d/org-third-party-ci.yaml"},{"line_number":116,"context_line":"   ---"},{"line_number":117,"context_line":"   - job:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_f67d30e7","line":114,"updated":"2019-08-14 15:26:31.000000000","message":"The project must be added to the configuration like any other normal third party job configuration","commit_id":"a21c830d3c60c91cc2b3a5b281fa11fc3f51bd08"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"c7fe3ec141602cc64c96c4470f8bdc46fdef8aa6","unresolved":false,"context_lines":[{"line_number":111,"context_line":"to the tenant hosting the jobs."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":".. code-block:: yaml"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"   # other-tenant-jobs/zuul.d/org-third-party-ci.yaml"},{"line_number":116,"context_line":"   ---"},{"line_number":117,"context_line":"   - job:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_c134964b","line":114,"in_reply_to":"7faddb67_f67d30e7","updated":"2019-08-20 15:36:55.000000000","message":"Done","commit_id":"a21c830d3c60c91cc2b3a5b281fa11fc3f51bd08"},{"author":{"_account_id":6889,"name":"Fabien Boucher","email":"fboucher@redhat.com","username":"fabien-boucher"},"change_message_id":"9cbf1c2a81366ab20a3fb46e357855b62f2dc63a","unresolved":false,"context_lines":[{"line_number":42,"context_line":"           - test-org-job"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Then the run phase of this job validates changes to the job definition as well"},{"line_number":46,"context_line":"as changes to the job\u0027s role. The playbook can be written such as:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":".. code-block:: yaml"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"   # org-jobs/playbooks/test-org-job.yaml"},{"line_number":51,"context_line":"   ---"},{"line_number":52,"context_line":"   - hosts: all"},{"line_number":53,"context_line":"     tasks:"},{"line_number":54,"context_line":"       - name: Prepare mock data"},{"line_number":55,"context_line":"         command: touch test"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"       - name: Run the role or playbook"},{"line_number":58,"context_line":"         include_role:"},{"line_number":59,"context_line":"           name: org-job-role"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"       - name: Assert role worked as expected"},{"line_number":62,"context_line":"         assert:"},{"line_number":63,"context_line":"           that:"},{"line_number":64,"context_line":"             - true"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Generic Job"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_b3c77145","line":64,"range":{"start_line":45,"start_character":0,"end_line":64,"end_character":19},"updated":"2019-08-20 16:15:02.000000000","message":"Simply using the parent job as it is w/o overwriting the run playbook is also an option I think. And if pre/post tasks need to done in order to prepare the test env why not using the child pre-run and post-run ?","commit_id":"17082c1ce88c886830f071412c3a3f6e0551245c"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"91321cf866fb0c44ffebea270c80a5544794224b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"           - test-org-job"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Then the run phase of this job validates changes to the job definition as well"},{"line_number":46,"context_line":"as changes to the job\u0027s role. The playbook can be written such as:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":".. code-block:: yaml"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"   # org-jobs/playbooks/test-org-job.yaml"},{"line_number":51,"context_line":"   ---"},{"line_number":52,"context_line":"   - hosts: all"},{"line_number":53,"context_line":"     tasks:"},{"line_number":54,"context_line":"       - name: Prepare mock data"},{"line_number":55,"context_line":"         command: touch test"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"       - name: Run the role or playbook"},{"line_number":58,"context_line":"         include_role:"},{"line_number":59,"context_line":"           name: org-job-role"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"       - name: Assert role worked as expected"},{"line_number":62,"context_line":"         assert:"},{"line_number":63,"context_line":"           that:"},{"line_number":64,"context_line":"             - true"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Generic Job"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_4ccef65b","line":64,"range":{"start_line":45,"start_character":0,"end_line":64,"end_character":19},"in_reply_to":"7faddb67_3ae6d4b1","updated":"2019-08-29 19:22:24.000000000","message":"Is there any concern that not running the run playbook as it would be run normally will invalidate this testing in some cases? I seem to recall ansible acting differently once you start nesting include_*\u0027s for example.\n\nGiven that I think I\u0027m with Fabien that using pre-run and post-run playbooks that won\u0027t override the parent but instead enhance them seems safer.","commit_id":"17082c1ce88c886830f071412c3a3f6e0551245c"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"4955af4493a4ce9c8eee370b2bcd05e613550af5","unresolved":false,"context_lines":[{"line_number":42,"context_line":"           - test-org-job"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Then the run phase of this job validates changes to the job definition as well"},{"line_number":46,"context_line":"as changes to the job\u0027s role. The playbook can be written such as:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":".. code-block:: yaml"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"   # org-jobs/playbooks/test-org-job.yaml"},{"line_number":51,"context_line":"   ---"},{"line_number":52,"context_line":"   - hosts: all"},{"line_number":53,"context_line":"     tasks:"},{"line_number":54,"context_line":"       - name: Prepare mock data"},{"line_number":55,"context_line":"         command: touch test"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"       - name: Run the role or playbook"},{"line_number":58,"context_line":"         include_role:"},{"line_number":59,"context_line":"           name: org-job-role"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"       - name: Assert role worked as expected"},{"line_number":62,"context_line":"         assert:"},{"line_number":63,"context_line":"           that:"},{"line_number":64,"context_line":"             - true"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Generic Job"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_6c13a402","line":64,"range":{"start_line":45,"start_character":0,"end_line":64,"end_character":19},"in_reply_to":"7faddb67_4ccef65b","updated":"2019-08-30 13:30:31.000000000","message":"Agreed, though that\u0027s how zuul-jobs/zuul-tests.d/ jobs are currently written. It seems like using pre/post around the target job run may be more tricky than just writting a custom run that includes the roles to test in a controlled manner.","commit_id":"17082c1ce88c886830f071412c3a3f6e0551245c"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"707551a52a711bf766ea07cc8b9a5c33355b5b4c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"           - test-org-job"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Then the run phase of this job validates changes to the job definition as well"},{"line_number":46,"context_line":"as changes to the job\u0027s role. The playbook can be written such as:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":".. code-block:: yaml"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"   # org-jobs/playbooks/test-org-job.yaml"},{"line_number":51,"context_line":"   ---"},{"line_number":52,"context_line":"   - hosts: all"},{"line_number":53,"context_line":"     tasks:"},{"line_number":54,"context_line":"       - name: Prepare mock data"},{"line_number":55,"context_line":"         command: touch test"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"       - name: Run the role or playbook"},{"line_number":58,"context_line":"         include_role:"},{"line_number":59,"context_line":"           name: org-job-role"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"       - name: Assert role worked as expected"},{"line_number":62,"context_line":"         assert:"},{"line_number":63,"context_line":"           that:"},{"line_number":64,"context_line":"             - true"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Generic Job"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_3ae6d4b1","line":64,"range":{"start_line":45,"start_character":0,"end_line":64,"end_character":19},"in_reply_to":"7faddb67_b3c77145","updated":"2019-08-22 02:04:03.000000000","message":"Child job pre/post are going to happen after the pre and before the post of the parent. It seems like the simplest usage for a test job is to do the test in run phase.","commit_id":"17082c1ce88c886830f071412c3a3f6e0551245c"}]}
