summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Morales <v.morales@samsung.com>2020-08-13 18:49:28 -0400
committerVictor Morales <v.morales@samsung.com>2020-08-13 19:28:36 -0400
commitcb2a4f34df19398c2800beca0d8723ad4f0d2573 (patch)
tree5e026811c1284705d8c4870c940e7b635330e17a
parent0c108ad88bad281eaea677419969d5dc0e641517 (diff)
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 <v.morales@samsung.com> Change-Id: I0a4a5378a8e75322993be049b961886d5595c0db
-rwxr-xr-xjjb/kuberef/kuberef-run-linting.sh56
-rw-r--r--jjb/kuberef/kuberef-verify-jobs.yaml51
-rw-r--r--jjb/kuberef/kuberef-views.yaml6
-rw-r--r--jjb/kuberef/kuberef.yaml20
4 files changed, 113 insertions, 20 deletions
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'