Switch yamllint job to only run against new files 51/45251/2
authorTrevor Bramwell <tbramwell@linuxfoundation.org>
Mon, 16 Oct 2017 16:37:13 +0000 (09:37 -0700)
committerTrevor Bramwell <tbramwell@linuxfoundation.org>
Wed, 18 Oct 2017 23:30:31 +0000 (16:30 -0700)
Intead of yamllint all files at once yamllint will only run against new
or modified yaml files.

Change-Id: I10b951427966409e15fb773b959adbd780497bad
Signed-off-by: Trevor Bramwell <tbramwell@linuxfoundation.org>
jjb/global/releng-macros.yml

index 59415f5..fe2ec7b 100644 (file)
           # generate and upload lint log
           echo "Running yaml code on $PROJECT ..."
 
+          # Get list of yaml files
+          YAML_FILES=$(git --no-pager diff --diff-filter=MCRAT --name-only HEAD^1 | egrep "ya?ml$")
+
           # Ensure we start with a clean environment
           rm -f yaml-violation.log lint.log
 
-          # Get number of yaml violations. If none, this will be an
-          # empty string: ""
-          find . \
-              -type f -name "*.yml" -print \
-              -o -name "*.yaml" -print | \
-              xargs yamllint > yaml-violation.log || true
+          # Yamllint files only in patchset
+          for yamlfile in $YAML_FILES; do
+            yamllint $yamlfile >> yaml-violation.log || true
+          done
 
           if [ -s "yaml-violation.log" ]; then
-            SHOWN=$(cat yaml-violation.log| grep -v "^$" |wc -l)
+            SHOWN=$(grep -c -v "^$" yaml-violation.log)
             echo -e "First $SHOWN shown\n---" > lint.log
             cat yaml-violation.log >> lint.log
             sed -r -i '4,$s/^/ /g' lint.log