Copy built artifact into zuul artifact location
The job builds a war which is something should collect, both so
that people can grab copies of it and so that subsequent jobs can
process it further. Copy to the canonical zuul-output location.
For plugin builds, this copies the plugin jar instead.
Change-Id: I2d0b030592909f76ce182f07b1b4ccf14c5bbdbd
diff --git a/roles/bazelisk-build/README.rst b/roles/bazelisk-build/README.rst
index fd07d01..95f8910 100644
--- a/roles/bazelisk-build/README.rst
+++ b/roles/bazelisk-build/README.rst
@@ -21,6 +21,16 @@
The path to the bazelisk executable. See
:zuul:role:`ensure-bazelisk`.
+.. zuul:rolevar:: bazelisk_artifacts
+ :default: []
+
+ Paths (relative to zuul_work_dir) of artifacts to collect.
+
+.. zuul:rolevar:: zuul_output_dir
+ :default: {{ ansible_user_dir }}/zuul-output
+
+ Base directory for collecting job output.
+
.. zuul:rolevar:: zuul_work_dir
:default: {{ ansible_user_dir }}/{{ zuul.project.src_dir}}
diff --git a/roles/bazelisk-build/defaults/main.yaml b/roles/bazelisk-build/defaults/main.yaml
index 5760549..6a5e01d 100644
--- a/roles/bazelisk-build/defaults/main.yaml
+++ b/roles/bazelisk-build/defaults/main.yaml
@@ -1,4 +1,6 @@
bazelisk_targets: ""
bazelisk_test_targets: ""
bazelisk_executable: bazelisk
+bazelisk_artifacts: []
+zuul_output_dir: "{{ ansible_user_dir }}/zuul-output"
zuul_work_dir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir}}"
diff --git a/roles/bazelisk-build/tasks/main.yaml b/roles/bazelisk-build/tasks/main.yaml
index 987c390..71f0e31 100644
--- a/roles/bazelisk-build/tasks/main.yaml
+++ b/roles/bazelisk-build/tasks/main.yaml
@@ -15,3 +15,18 @@
chdir: "{{ zuul_work_dir }}"
register: test_result
failed_when: test_result.rc not in [0, 4]
+- name: Copy output to artifacts location
+ loop: "{{ bazelisk_artifacts }}"
+ command: "cp {{ item }} {{ zuul_output_dir }}/artifacts"
+ args:
+ chdir: "{{ zuul_work_dir }}"
+- name: Return built artifacts to Zuul
+ loop: "{{ bazelisk_artifacts }}"
+ zuul_return:
+ data:
+ zuul:
+ artifacts:
+ - name: "Build"
+ url: "artifacts/{{ item | basename }}"
+ metadata:
+ type: java_jar
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
index 6769056..fdb3343 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -37,6 +37,8 @@
timeout: 3600
vars:
bazelisk_targets: ":release"
+ bazelisk_artifacts:
+ - bazel-bin/release.war
zuul_work_dir: "{{ ansible_user_dir }}/src/gerrit.googlesource.com/gerrit"
- job:
@@ -67,4 +69,6 @@
gerrit_plugin: "{{ zuul.project.short_name }}"
bazelisk_targets: "plugins/{{ gerrit_plugin }}:{{ gerrit_plugin }}"
bazelisk_test_targets: "plugins/{{ gerrit_plugin }}/..."
+ bazelisk_artifacts:
+ - "bazel-bin/plugins/{{ gerrit_plugin }}/{{ gerrit_plugin }}.jar"
zuul_work_dir: "{{ ansible_user_dir }}/src/gerrit.googlesource.com/gerrit"