--- /dev/null
+#!/bin/bash
+
+set -e
+set -x
+
+function generate_filelist(){
+ if [[ "$pull_request_id" -eq "" || "${ghprbCommentBody:-}" = "jenkins flake8 all" ]]
+ then
+ find . -name '*.py'
+ else
+ curl -XGET "https://api.github.com/repos/ceph/ceph-iscsi-config/pulls/$pull_request_id/files" |
+ jq '.[].filename' | # just the files please
+ tr -d '"' | # remove the quoting from JSON
+ grep ".py$" # just the python
+ fi
+
+}
+
+function check(){
+ local file
+ while read -r filename; do
+ pushd "$(dirname "$filename")"
+ file=$(basename "$filename")
+ sudo docker run --rm -v "$workspace"/ceph-iscsi-config/tox.ini:/tox.ini -v "$(pwd)"/"$file":/"$file" eeacms/flake8 /"$file"
+ popd
+ done
+ return $?
+}
+
+function main() {
+ # install some of our dependencies if running on a jenkins slave
+ if [[ -n "$HUDSON_URL" ]]
+ then
+ sudo yum -y install epel-release
+ sudo yum -y install docker jq
+ sudo systemctl start docker
+ pull_request_id=${ghprbPullId:-$2}
+ workspace=${WORKSPACE:-$1}
+ else
+ if ! command -v docker || ! command -v jq
+ then
+ echo "docker or jq is/are missing, install it/them"
+ exit 1
+ fi
+ pull_request_id=${ghprbPullId:-$2}
+ workspace=${WORKSPACE:-$1}
+ fi
+
+
+ pushd "$workspace/ceph-iscsi-config"
+ generate_filelist | check
+ popd
+ exit $?
+}
+
+main "$@"
--- /dev/null
+- scm:
+ name: ceph-iscsi-config
+ scm:
+ - git:
+ url: https://github.com/ceph/ceph-iscsi-config.git
+ branches:
+ - ${sha1}
+ refspec: +refs/pull/*:refs/remotes/origin/pr/*
+ browser: auto
+ timeout: 20
+ skip-tag: true
+ wipe-workspace: false
+ basedir: "ceph-iscsi-config"
+
+- job:
+ name: ceph-iscsi-config-flake8
+ node: small && centos7
+ defaults: global
+ display-name: 'ceph-iscsi-config-flake8'
+ properties:
+ - build-discarder:
+ days-to-keep: 15
+ num-to-keep: 30
+ artifact-days-to-keep: -1
+ artifact-num-to-keep: -1
+ - github:
+ url: https://github.com/ceph/ceph-iscsi-config/
+
+ parameters:
+ - string:
+ name: sha1
+ description: "A pull request ID, like 'origin/pr/72/head'"
+
+ triggers:
+ - github-pull-request:
+ admin-list:
+ - dillaman
+ org-list:
+ - ceph
+ trigger-phrase: 'jenkins flake8'
+ only-trigger-phrase: false
+ github-hooks: true
+ permit-all: true
+ auto-close-on-fail: false
+ status-context: "Testing: flake8"
+ started-status: "Running: flake8"
+ success-status: "OK"
+ failure-status: "FAIL - please clean up for merge"
+
+ scm:
+ - ceph-iscsi-config
+
+ builders:
+ - shell:
+ !include-raw:
+ - ../../build/build
+