[macro] property logrotate
[releng.git] / jjb / global / releng-macros.yml
index cd92480..d43bed7 100644 (file)
@@ -1,4 +1,15 @@
-# OLD Releng macros
+# Releng macros
+#
+# NOTE: make sure macros are listed in execution ordered.
+#
+# 1. parameters/properties
+# 2. scm
+# 3. triggers
+# 4. wrappers
+# 5. prebuilders (maven only, configured like Builders)
+# 6. builders (maven, freestyle, matrix, etc..)
+# 7. postbuilders (maven only, configured like Builders)
+# 8. publishers/reporters/notifications
 
 - parameter:
     name: project-parameter
             default: '{branch}'
             description: "JJB configured GERRIT_BRANCH parameter"
 
-- wrapper:
-    name: ssh-agent-wrapper
-    wrappers:
-        - ssh-agent-credentials:
-            users:
-                - 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e'
+- property:
+    name: logrotate-default
+    properties:
+        - build-discarder:
+            days-to-keep: 60
+            num-to-keep: 200
+            artifact-days-to-keep: 60
+            artifact-num-to-keep: 200
 
 - scm:
     name: git-scm
     triggers:
         - timed: ''
 
-- trigger:
-    name: 'weekly-trigger-disabled'
-    triggers:
-        - timed: ''
-
+# NOTE: unused macro, but we may use this for some jobs.
 - trigger:
     name: gerrit-trigger-patch-submitted
     triggers:
@@ -79,6 +88,7 @@
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/{branch}'
 
+# NOTE: unused macro, but we may use this for some jobs.
 - trigger:
     name: gerrit-trigger-patch-merged
     triggers:
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/{branch}'
 
-- publisher:
-    name: archive-artifacts
-    publishers:
-        - archive:
-            artifacts: '{artifacts}'
-            allow-empty: true
-            fingerprint: true
-            latest-only: true
+- trigger:
+    name: 'experimental'
+    triggers:
+        - gerrit:
+            server-name: 'gerrit.opnfv.org'
+            trigger-on:
+                - comment-added-contains-event:
+                    comment-contains-value: 'check-experimental'
+            projects:
+                - project-compare-type: 'ANT'
+                  project-pattern: '{project}'
+                  branches:
+                      - branch-compare-type: 'ANT'
+                        branch-pattern: '**/{branch}'
+                  file-paths:
+                      - compare-type: 'ANT'
+                        pattern: 'tests/**'
+            skip-vote:
+                successful: true
+                failed: true
+                unstable: true
+                notbuilt: true
+            silent-start: true
 
-# New Releng macros
+- wrapper:
+    name: ssh-agent-wrapper
+    wrappers:
+        - ssh-agent-credentials:
+            users:
+                - 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e'
 
 - builder:
     name: build-html-and-pdf-docs-output
     name: check-bash-syntax
     builders:
         - shell: "find . -name '*.sh' | xargs bash -n"
+
+- builder:
+    name: lint-yaml-code
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+            set -o pipefail
+            set -o xtrace
+            export PATH=$PATH:/usr/local/bin/
+
+            # install python packages
+            pip install "yamllint==1.6.0"
+
+            # generate and upload lint log
+            echo "Running yaml code on $PROJECT ..."
+
+            # 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
+
+            if [ -s "yaml-violation.log" ]; then
+              SHOWN=$(cat yaml-violation.log| grep -v "^$" |wc -l)
+              echo -e "First $SHOWN shown\n---" > lint.log
+              cat yaml-violation.log >> lint.log
+              sed -r -i '4,$s/^/ /g' lint.log
+            fi
+
+- publisher:
+    name: archive-artifacts
+    publishers:
+        - archive:
+            artifacts: '{artifacts}'
+            allow-empty: true
+            fingerprint: true
+            latest-only: true