Use a local copy of merge-output-to-logs This will run in both check and post pipelines, which is required by the new plugin publish job. Change-Id: Ia302e891393cf78ac109aae1303f7ae752f3126b
diff --git a/playbooks/base/post.yaml b/playbooks/base/post.yaml index c4a139d..e9b18e7 100644 --- a/playbooks/base/post.yaml +++ b/playbooks/base/post.yaml
@@ -1,7 +1,30 @@ - hosts: all roles: - fetch-output - - merge-output-to-logs + +- hosts: localhost + tasks: + # This is a copy of the 'merge-output-to-logs' role from + # zuul-jobs, but we run it in all pipelines, not just pre-merge. + # This is so that we can have the publish job download build + # plugin artifacts and promote them. The main reason to do that + # as two separate jobs is so the mutex that protects the + # plugins.json file can be held for as brief a time as possible. + - name: Move artifacts and docs to logs dir + shell: | + if [ -n "$(find {{ zuul.executor.work_root }}/{{ zj_item }} -mindepth 1)" ] ; then + # Only create target directory if it is needed. + # Do not fail if it is already there. + mkdir -p {{ zuul.executor.log_root }}/{{ zj_item }} + # Leave the original directory behind so that other roles + # operating on the interface directories can simply no-op. + mv -f {{ zuul.executor.work_root }}/{{ zj_item }}/* {{ zuul.executor.log_root }}/{{ zj_item }} + fi + loop: + - artifacts + - docs + loop_control: + loop_var: zj_item - hosts: all # NOTE(pabelanger): We ignore_errors for the following tasks as not to fail