From ed489d2c81c37d6fabe262f855da00212d87c772 Mon Sep 17 00:00:00 2001
From: Drew Walters <drewwalters96@gmail.com>
Date: Thu, 28 Mar 2019 16:32:32 -0500
Subject: [PATCH] CI: Add chart build job for latest Helm toolkit

This commit introduces a non-voting job to lint Helm charts against the
latest version of Helm toolkit from OpenStack-Helm Infra. This job
should serve as an indicator of when it's safe to advance the version of
Helm toolkit used by Airship.

Additionally, this commit modifies all Helm chart lint jobs to run on
each commit, regardless of the files modified by a change. This should
not introduce a noticeable difference in CI runtime, as these jobs
execute quicker than the tox jobs.

Change-Id: I90473fd73a740f2711eb85e131edfa457944ea5e
---
 .zuul.yaml                             | 16 ++++++++++++++--
 tools/gate/playbooks/build-charts.yaml | 11 +++++++----
 2 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/.zuul.yaml b/.zuul.yaml
index 4e36ce9b..08e5663f 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -15,6 +15,7 @@
       jobs:
         - airship-drydock-omni-test
         - airship-drydock-chart-build-gate
+        - airship-drydock-chart-build-latest-htk
         - airship-drydock-docker-build-gate
 
     gate:
@@ -45,11 +46,22 @@
 
 - job:
     name: airship-drydock-chart-build-gate
+    description: |
+      Builds charts using pinned Helm toolkit.
     timeout: 900
     run: tools/gate/playbooks/build-charts.yaml
     nodeset: airship-drydock-single-node
-    files:
-      - ^charts/.*$
+
+- job:
+    name: airship-drydock-chart-build-latest-htk
+    description: |
+      Builds charts using latest Helm toolkit.
+    timeout: 900
+    voting: false
+    run: tools/gate/playbooks/build-charts.yaml
+    nodeset: airship-drydock-single-node
+    vars:
+      HTK_COMMIT: master
 
 - job:
     name: airship-drydock-docker-build-gate
diff --git a/tools/gate/playbooks/build-charts.yaml b/tools/gate/playbooks/build-charts.yaml
index 4e93360a..8807e4a0 100644
--- a/tools/gate/playbooks/build-charts.yaml
+++ b/tools/gate/playbooks/build-charts.yaml
@@ -14,8 +14,11 @@
 
 - hosts: primary
   tasks:
-    - name: Build charts
-      shell: |
-        make charts
-      args:
+    - name: Execute the make target to package Helm charts.
+      make:
         chdir: "{{ zuul.project.src_dir }}"
+        target: charts
+        params:
+          HTK_COMMIT: "{{ HTK_COMMIT | default('') }}"
+      register: result
+      failed_when: result.failed