--- /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-docker/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 "$(pwd)"/"$file":/"$file" eeacms/flake8 /"$file"
+ popd
+ done
+ return $?
+}
+
+function main() {
+ # install some of our dependencies
+ if [ "${HUDSON_URL}" = "https://jenkins.ceph.com/" ]
+ 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-docker"
+ generate_filelist | check
+ popd
+ exit $?
+}
+
+main "$@"
--- /dev/null
+- scm:
+ name: ceph-docker
+ scm:
+ - git:
+ url: https://github.com/ceph/ceph-docker.git
+ branches:
+ - ${sha1}
+ refspec: +refs/pull/*:refs/remotes/origin/pr/*
+ browser: auto
+ timeout: 20
+ skip-tag: true
+ wipe-workspace: false
+ basedir: "ceph-docker"
+
+- job:
+ name: ceph-docker-flake8
+ node: small && centos7
+ defaults: global
+ display-name: 'ceph-docker-flake8'
+ properties:
+ - github:
+ url: https://github.com/ceph/ceph-docker/
+ logrotate:
+ daysToKeep: 15
+ numToKeep: 30
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+
+ parameters:
+ - string:
+ name: sha1
+ description: "A pull request ID, like 'origin/pr/72/head'"
+
+ triggers:
+ - github-pull-request:
+ admin-list:
+ - alfredodeza
+ - ktdreyer
+ - gmeno
+ - zcerza
+ 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: for sloppy python"
+ started-status: "Running: flake8"
+ success-status: "OK - nice work"
+ failure-status: "FAIL - please clean up for merge"
+
+ scm:
+ - ceph-docker
+
+ builders:
+ - shell:
+ !include-raw:
+ - ../../build/build
+