openstack-helm-infra/playbooks/lint.yml
Gage Hugo ddb377df6d Test linting osh on helm-toolkit changes
Since most of the charts in both openstack-helm and
this repo use helm-toolkit, changes in helm-toolkit
have the possibility of impacting charts in the
openstack-helm repo and will not be caught in testing
here.

This change adds a conditional linter to lint the
charts in the openstack-helm repo if any changes
to helm-toolkit are made.

Change-Id: I0f6a935eca53d966c01e0902e546ea132a636a9d
2021-11-02 22:46:43 +00:00

82 lines
2.7 KiB
YAML

---
# Copyright 2018 SUSE LINUX GmbH.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- hosts: all
roles:
- name: ensure-helm
helm_version: "3.6.3"
- name: ensure-chart-testing
chart_testing_version: "3.4.0"
- name: chart-testing
chart_testing_options: "--chart-dirs=. --validate-maintainers=false"
zuul_work_dir: "{{ work_dir }}"
vars:
work_dir: "{{ zuul.project.src_dir }}/{{ zuul_osh_infra_relative_path | default('') }}"
tasks:
- name: make all
make:
chdir: "{{ zuul.project.src_dir }}"
target: all
- name: make all osh
make:
chdir: "{{ zuul.project.src_dir }}/{{ zuul_osh_relative_path | default('../openstack-helm/') }}"
target: all
when: lint_osh is defined
- name: Prevent trailing whitespaces
shell: find . \! \( -path "*/\.*" -o -path "*/doc/build/*" -o -name "*.tgz" -o -name "*.png" \) -type f -exec egrep -l " +$" {} \;
register: _found_whitespaces
failed_when: _found_whitespaces.stdout != ""
args:
chdir: "{{ ansible_user_dir }}/src/{{ zuul.project.canonical_name }}"
- name: Check release note version matches
shell: ../openstack-helm-infra/tools/gate/reno-check.sh
args:
chdir: "{{ ansible_user_dir }}/src/{{ zuul.project.canonical_name }}"
- name: Check if yamllint.conf exists
stat:
path: "{{ ansible_user_dir }}/src/{{ zuul.project.canonical_name }}/yamllint.conf"
register: yamllintconf
- name: Install jq and pip
apt:
pkg:
- jq
- python3-pip
become: yes
when: yamllintconf.stat.exists == True
- name: Install tox
shell: pip3 install -U tox
become: yes
when: yamllintconf.stat.exists == True
- name: Execute yamllint check for values* yaml files
command: tox -e lint
args:
chdir: "{{ ansible_user_dir }}/src/{{ zuul.project.canonical_name }}"
when: yamllintconf.stat.exists == True
- name: Execute yamllint check for osh values* yaml files
command: tox -e lint
args:
chdir: "{{ zuul.project.src_dir }}/{{ zuul_osh_relative_path | default('../openstack-helm/') }}"
when: yamllintconf.stat.exists == True and lint_osh is defined
...