- hosts: all tasks: - name: Build gerrit include_role: name: bazelisk-build vars: zuul_work_dir: /home/zuul/src/gerrit.googlesource.com/gerrit # NOTE(ianw): There doesn't seem to be a way to integrate # polygerrit/javascript plugins into the standard "release" # target; we add plugins as separate targets here bazelisk_targets: - release - plugins/zuul-results-summary:zuul-results-summary # Bazel makes "convenience symlinks" [1] starting with bazel-* to # the actual build output. The problem is that we want to use the # source tree as the context/build dir for our Docker container, # and Docker refuses to follow symlinks for COPY commands; i.e. we # can't copy stuff from the build output into the container. # Therefore break the bazel-bin link and move to the top level so # we can copy the built bits (jars, plugins, etc) into the # container easily. # # [1] https://docs.bazel.build/versions/master/user-manual.html - name: Make bazel-bin docker friendly shell: cmd: | if [ ! -L bazel-bin ]; then echo "bazel-bin not a symlink?" exit 1 fi target=$(readlink bazel-bin) rm bazel-bin mv $target bazel-bin chdir: /home/zuul/src/gerrit.googlesource.com/gerrit - name: Install static files to container build context block: - name: Ensure directories file: path: '/home/zuul/src/gerrit.googlesource.com/gerrit/{{ item }}' state: directory loop: - plugins - static - name: Copy static files copy: src: '{{ item }}' dest: '/home/zuul/src/gerrit.googlesource.com/gerrit/{{ item }}' loop: - static/cla.html - static/opendev-sm.png - static/robots.txt - static/system-cla.html - static/usg-cla.html - plugins/opendev-theme-plugin.js - name: Build docker image include_role: name: build-docker-image - hosts: localhost roles: - pause-buildset-registry