From cb2a4f34df19398c2800beca0d8723ad4f0d2573 Mon Sep 17 00:00:00 2001 From: Victor Morales Date: Thu, 13 Aug 2020 18:49:28 -0400 Subject: [PATCH] Add Lint process to Kuberef Lint tools allow to check syntax errors and verify best practices on coding. This change includes a Jenkins Job for running those tools on every change submitted. Signed-off-by: Victor Morales Change-Id: I0a4a5378a8e75322993be049b961886d5595c0db --- jjb/kuberef/kuberef-run-linting.sh | 56 ++++++++++++++++++++++++++++++++++++ jjb/kuberef/kuberef-verify-jobs.yaml | 51 ++++++++++++++++++++++++++++++++ jjb/kuberef/kuberef-views.yaml | 6 ++++ jjb/kuberef/kuberef.yaml | 20 ------------- 4 files changed, 113 insertions(+), 20 deletions(-) create mode 100755 jjb/kuberef/kuberef-run-linting.sh create mode 100644 jjb/kuberef/kuberef-verify-jobs.yaml create mode 100644 jjb/kuberef/kuberef-views.yaml delete mode 100644 jjb/kuberef/kuberef.yaml diff --git a/jjb/kuberef/kuberef-run-linting.sh b/jjb/kuberef/kuberef-run-linting.sh new file mode 100755 index 000000000..4f681ac53 --- /dev/null +++ b/jjb/kuberef/kuberef-run-linting.sh @@ -0,0 +1,56 @@ +#!/bin/bash +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2020 Samsung Electronics +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +set -o nounset +set -o pipefail +set -o xtrace + +# shellcheck disable=SC1091 +source /etc/os-release || source /usr/lib/os-release + +pkgs="" +if ! command -v shellcheck; then + case ${ID,,} in + *suse*|rhel|centos|fedora) + pkgs="ShellCheck" + ;; + ubuntu|debian) + pkgs="shellcheck" + ;; + esac +fi + +if ! command -v pip; then + pkgs+=" python-pip" +fi + +if [ -n "$pkgs" ]; then + case ${ID,,} in + *suse*) + sudo zypper install --gpg-auto-import-keys refresh + sudo -H -E zypper install -y --no-recommends "$pkgs" + ;; + ubuntu|debian) + sudo apt-get update + sudo -H -E apt-get -y --no-install-recommends install "$pkgs" + ;; + rhel|centos|fedora) + PKG_MANAGER=$(command -v dnf || command -v yum) + if ! sudo "$PKG_MANAGER" repolist | grep "epel/"; then + sudo -H -E "$PKG_MANAGER" -q -y install epel-release + fi + sudo "$PKG_MANAGER" updateinfo --assumeyes + sudo -H -E "${PKG_MANAGER}" -y install "$pkgs" + ;; + esac +fi + +tox -e lint +bash -c 'shopt -s globstar; shellcheck **/*.sh' diff --git a/jjb/kuberef/kuberef-verify-jobs.yaml b/jjb/kuberef/kuberef-verify-jobs.yaml new file mode 100644 index 000000000..dfe6d7276 --- /dev/null +++ b/jjb/kuberef/kuberef-verify-jobs.yaml @@ -0,0 +1,51 @@ +--- +- project: + name: kuberef-verify + project: kuberef + stream: + - master: + branch: '{stream}' + jobs: + - '{project}-verify-lint-{stream}' + +- job-template: + name: '{project}-verify-lint-{stream}' + scm: + - kuberef-project-scm + triggers: + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: 'kuberef' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + skip-vote: + successful: false + failed: false + unstable: false + notbuilt: false + builders: + - kubref-run-linting + +- scm: + name: kuberef-project-scm + scm: + - git: + url: https://gerrit.opnfv.org/gerrit/kuberef + refspec: '+refs/changes/*:refs/changes/*' + branches: + - '{ref}' + +- builder: + name: kubref-run-linting + builders: + - shell: + !include-raw: ./kuberef-run-linting.sh diff --git a/jjb/kuberef/kuberef-views.yaml b/jjb/kuberef/kuberef-views.yaml new file mode 100644 index 000000000..7b19c2df6 --- /dev/null +++ b/jjb/kuberef/kuberef-views.yaml @@ -0,0 +1,6 @@ +--- +- project: + name: kuberef-view + views: + - project-view + project-name: kuberef diff --git a/jjb/kuberef/kuberef.yaml b/jjb/kuberef/kuberef.yaml deleted file mode 100644 index 6e42922b5..000000000 --- a/jjb/kuberef/kuberef.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -- project: - name: kuberef-project-view - project-name: kuberef - views: - - project-view - -- project: - name: kuberef-info - project: kuberef - project-name: kuberef - jobs: - - gerrit-info-yaml-verify - -- project: - name: kuberef - project: kuberef - project-name: kuberef - jobs: - - '{project}-verify-basic' -- 2.16.6