Add role for fetching javascript built content

Built content and source tarballs are different. Have a role that
handles uploading built content.

Append -content to the tarball so that a project can publish both a
source tarball and a built content tarball without stepping on each
other.

Change-Id: I33dff8080018bda281a00e648468de80d3ecd679
This commit is contained in:
Monty Taylor 2018-03-06 13:30:35 -06:00
parent fd35b1b9aa
commit 35da394f53
No known key found for this signature in database
GPG Key ID: 7BAE94BC7141A594
3 changed files with 41 additions and 0 deletions

View File

@ -0,0 +1,11 @@
Fetch a Javascript content tarball back to be published.
A content tarball is one that contains built javascript/css artifacts,
such as but not limited to those produced by the webpack ArchivePlugin.
**Role Variables**
.. zuul:rolevar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Directory to work in.

View File

@ -0,0 +1 @@
zuul_work_dir: "{{ zuul.project.src_dir }}"

View File

@ -0,0 +1,29 @@
- name: Rename tarball for uploading
shell: |
mkdir -p dist
cp *.tgz dist/{{ zuul.project.short_name }}-content-latest.tar.gz
args:
chdir: "{{ zuul_work_dir }}"
tags:
# Ignore ANSIBLE0007: No need to use file module instead of mkdir
- skip_ansible_lint
- name: Rename tagged tarball for uploading
when: zuul.tag is defined
shell: |
cp *.tgz dist/{{ zuul.project.short_name }}-content-{{ zuul.tag }}.tar.gz
args:
chdir: "{{ zuul_work_dir }}"
- name: Ensure artifacts directory exists
file:
path: "{{ zuul.executor.work_root }}/artifacts"
state: directory
delegate_to: localhost
- name: Collect artifacts
synchronize:
dest: "{{ zuul.executor.work_root }}/artifacts/"
mode: pull
src: "{{ zuul_work_dir }}/dist/"
verify_host: true