summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build-gluster-org/jobs/centos6-regression.yml55
-rw-r--r--build-gluster-org/jobs/compare-bug-version-and-git-branch.yml43
-rw-r--r--build-gluster-org/jobs/freebsd-smoke.yml42
-rw-r--r--build-gluster-org/jobs/git.yml10
-rw-r--r--build-gluster-org/jobs/glusterfs-devrpms.yml63
-rw-r--r--build-gluster-org/jobs/glusterfs-rpms.yml54
-rw-r--r--build-gluster-org/jobs/netbsd6-smoke.yml46
-rw-r--r--build-gluster-org/jobs/netbsd7-regression.yml48
-rw-r--r--build-gluster-org/jobs/properties.yml16
-rw-r--r--build-gluster-org/jobs/publishers.yml19
-rw-r--r--build-gluster-org/jobs/reboot-vm.yml45
-rw-r--r--build-gluster-org/jobs/regression-test-burn-in.yml34
-rw-r--r--build-gluster-org/jobs/release.yml32
-rw-r--r--build-gluster-org/jobs/smoke.yml45
-rw-r--r--build-gluster-org/jobs/strfmt_errors.yml53
-rwxr-xr-xbuild-gluster-org/scripts/centos-regression.sh112
-rwxr-xr-xbuild-gluster-org/scripts/freebsd-smoke.sh20
-rwxr-xr-xbuild-gluster-org/scripts/glusterfs-devrpms.sh6
-rwxr-xr-xbuild-gluster-org/scripts/glusterfs-rpms.sh6
-rwxr-xr-xbuild-gluster-org/scripts/netbsd6-smoke.sh10
-rwxr-xr-xbuild-gluster-org/scripts/netbsd7-regression.sh122
-rwxr-xr-xbuild-gluster-org/scripts/reboot-vm.sh1
-rwxr-xr-xbuild-gluster-org/scripts/regression-test-burn-in.sh67
-rwxr-xr-xbuild-gluster-org/scripts/smoke.sh23
-rwxr-xr-xbuild-gluster-org/scripts/strfmt_errors.sh16
25 files changed, 988 insertions, 0 deletions
diff --git a/build-gluster-org/jobs/centos6-regression.yml b/build-gluster-org/jobs/centos6-regression.yml
new file mode 100644
index 0000000..0c48786
--- /dev/null
+++ b/build-gluster-org/jobs/centos6-regression.yml
@@ -0,0 +1,55 @@
+- job:
+ name: centos6-regression
+ node: rackspace_regression_2gb
+ description: Our production regression test. Triggerered for each Gerrit CR revision.
+ project-type: freestyle
+ concurrent: true
+
+ scm:
+ - git:
+ branches:
+ - $GERRIT_BRANCH
+ refspec: $GERRIT_REFSPEC
+ choosing-strategy: gerrit
+ url: git://review.gluster.org/glusterfs.git
+ wipe-workspace: false
+
+ properties:
+ - one-build-per-node
+
+ triggers:
+ - gerrit:
+ server-name: review.gluster.org
+ trigger-on:
+ - comment-added-contains-event:
+ comment-contains-value: "recheck centos"
+ - comment-added-event:
+ approval-category: Verified
+ approval-value: 1
+
+ projects:
+ - project-compare-type: 'PLAIN'
+ project-pattern: 'glusterfs'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**'
+
+ parameters:
+ - string:
+ default: refs/heads/master
+ description: 'For review 12345 and patch set 6, this will be refs/changes/45/12345/6. Default: Tip of master'
+ name: GERRIT_REFSPEC
+ - string:
+ default: master
+ description: 'Name of the branch you want to build from. We usually build from master'
+ name: GERRIT_BRANCH
+
+ builders:
+ - shell: !include-raw: ../scripts/centos-regression.sh
+
+ wrappers:
+ - timestamps
+ - timeout:
+ timeout: 300
+ abort: true
+ type: absolute
diff --git a/build-gluster-org/jobs/compare-bug-version-and-git-branch.yml b/build-gluster-org/jobs/compare-bug-version-and-git-branch.yml
new file mode 100644
index 0000000..abf3f0b
--- /dev/null
+++ b/build-gluster-org/jobs/compare-bug-version-and-git-branch.yml
@@ -0,0 +1,43 @@
+- job:
+ name: compare-bug-version-and-git-branch
+ node: master
+ description: Each change is filed against a git branch, the branch must match
+ the version that is set in the bugreport.
+ project-type: freestyle
+
+ scm:
+ - glusterfs
+
+ triggers:
+ - gerrit:
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: false
+ exclude-trivial-rebase: false
+ exclude-no-code-change: false
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: "recheck smoke"
+ server-name: review.gluster.org_for-smoke-jobs
+ projects:
+ - project-compare-type: 'PLAIN'
+ project-pattern: 'glusterfs'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**'
+
+ parameters:
+ - string:
+ default: refs/heads/master
+ description: 'For review 12345 and patch set 6, this will be refs/changes/45/12345/6. Default: Tip of master'
+ name: GERRIT_REFSPEC
+ - string:
+ default: master
+ description: 'Name of the branch you want to build from. We usually build from master'
+ name: GERRIT_BRANCH
+
+ builders:
+ - shell: /opt/qa/jenkins/scripts/compare-bug-version-and-git-branch.sh
+
+ wrappers:
+ - timestamps
diff --git a/build-gluster-org/jobs/freebsd-smoke.yml b/build-gluster-org/jobs/freebsd-smoke.yml
new file mode 100644
index 0000000..675c67a
--- /dev/null
+++ b/build-gluster-org/jobs/freebsd-smoke.yml
@@ -0,0 +1,42 @@
+- job:
+ name: freebsd-smoke
+ node: freebsd_build
+ description: GlusterFS pre-commit smoke test on FreeBSD
+ project-type: freestyle
+
+ scm:
+ - glusterfs
+
+ triggers:
+ - gerrit:
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: false
+ exclude-trivial-rebase: false
+ exclude-no-code-change: false
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: "recheck smoke"
+ server-name: review.gluster.org_for-smoke-jobs
+ projects:
+ - project-compare-type: 'PLAIN'
+ project-pattern: 'glusterfs'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**'
+
+ parameters:
+ - string:
+ default: refs/heads/master
+ description: 'For review 12345 and patch set 6, this will be refs/changes/45/12345/6. Default: Tip of master'
+ name: GERRIT_REFSPEC
+ - string:
+ default: master
+ description: 'Name of the branch you want to build from. We usually build from master'
+ name: GERRIT_BRANCH
+
+ builders:
+ - shell: !include-raw: ../scripts/freebsd-smoke.sh
+
+ wrappers:
+ - timestamps
diff --git a/build-gluster-org/jobs/git.yml b/build-gluster-org/jobs/git.yml
new file mode 100644
index 0000000..2a38e67
--- /dev/null
+++ b/build-gluster-org/jobs/git.yml
@@ -0,0 +1,10 @@
+- scm:
+ name: glusterfs
+ scm:
+ - git:
+ branches:
+ - $GERRIT_BRANCH
+ refspec: $GERRIT_REFSPEC
+ choosing-strategy: gerrit
+ url: git://review.gluster.org/glusterfs.git
+
diff --git a/build-gluster-org/jobs/glusterfs-devrpms.yml b/build-gluster-org/jobs/glusterfs-devrpms.yml
new file mode 100644
index 0000000..cb78d63
--- /dev/null
+++ b/build-gluster-org/jobs/glusterfs-devrpms.yml
@@ -0,0 +1,63 @@
+- project:
+ name: 'devrpm'
+ version:
+ - fedora:
+ build_flag: fedora-24-x86_64
+ - el6:
+ build_flag: epel-6-x86_64
+ - el7:
+ build_flag: epel-7-x86_64
+ jobs:
+ - '{name}-{version}'
+
+- job-template:
+ name: '{name}-{version}'
+ node: glusterfs-devrpms
+ description: Creates RPMs for developers and those who need to verify the patch
+ project-type: freestyle
+ concurrent: true
+
+ properties:
+ - discard-after-x:
+ x: 50
+ - one-build-per-node
+
+ scm:
+ - glusterfs
+
+ triggers:
+ - gerrit:
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: false
+ exclude-trivial-rebase: false
+ exclude-no-code-change: false
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: "recheck smoke"
+ server-name: review.gluster.org_for-smoke-jobs
+ projects:
+ - project-compare-type: 'PLAIN'
+ project-pattern: 'glusterfs'
+ branches:
+ - branch-compare-type: 'PLAIN'
+ branch-pattern: 'master'
+
+ parameters:
+ - string:
+ default: refs/heads/master
+ description: 'For review 12345 and patch set 6, this will be refs/changes/45/12345/6. Default: Tip of master'
+ name: GERRIT_REFSPEC
+ - string:
+ default: master
+ description: 'Name of the branch you want to build from. We usually build from master'
+ name: GERRIT_BRANCH
+
+ publishers:
+ - rpm
+
+ builders:
+ - shell: !include-raw: ../scripts/glusterfs-devrpms.sh
+
+ wrappers:
+ - timestamps
diff --git a/build-gluster-org/jobs/glusterfs-rpms.yml b/build-gluster-org/jobs/glusterfs-rpms.yml
new file mode 100644
index 0000000..7a1022a
--- /dev/null
+++ b/build-gluster-org/jobs/glusterfs-rpms.yml
@@ -0,0 +1,54 @@
+- project:
+ name: 'rpm'
+ buildversion:
+ - fedora:
+ build_flag: fedora-24-x86_64
+ - el6:
+ build_flag: epel-6-x86_64
+ jobs:
+ - '{name}-{buildversion}'
+
+- job-template:
+ name: '{name}-{buildversion}'
+ node: glusterfs-devrpms
+ description: Creates RPMs for developers and those who need to verify the patch
+ project-type: freestyle
+ concurrent: true
+
+ properties:
+ - discard-after-x:
+ x: 10
+ - one-build-per-node
+
+ scm:
+ - glusterfs
+
+ triggers:
+ - gerrit:
+ trigger-on:
+ - change-merged-event
+ projects:
+ - project-compare-type: 'PLAIN'
+ project-pattern: 'glusterfs'
+ branches:
+ - branch-compare-type: 'PLAIN'
+ branch-pattern: 'master'
+
+ parameters:
+ - string:
+ default: refs/heads/master
+ description: 'For review 12345 and patch set 6, this will be refs/changes/45/12345/6. Default: Tip of master'
+ name: GERRIT_REFSPEC
+ - string:
+ default: master
+ description: 'Name of the branch you want to build from. We usually build from master'
+ name: GERRIT_BRANCH
+
+ publishers:
+ - rpm
+
+ builders:
+ - shell: !include-raw: ../scripts/glusterfs-rpms.sh
+
+ wrappers:
+ - timestamps
diff --git a/build-gluster-org/jobs/netbsd6-smoke.yml b/build-gluster-org/jobs/netbsd6-smoke.yml
new file mode 100644
index 0000000..3346d16
--- /dev/null
+++ b/build-gluster-org/jobs/netbsd6-smoke.yml
@@ -0,0 +1,46 @@
+- job:
+ name: netbsd6-smoke
+ node: netbsd_build
+ description: GlusterFS pre-commit smoke test on NetBSD
+ project-type: freestyle
+
+ scm:
+ - glusterfs
+
+ triggers:
+ - gerrit:
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: false
+ exclude-trivial-rebase: false
+ exclude-no-code-change: true
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: "recheck smoke"
+ server-name: review.gluster.org_for-smoke-jobs
+ projects:
+ - project-compare-type: 'PLAIN'
+ project-pattern: 'glusterfs'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**'
+
+ parameters:
+ - string:
+ default: refs/heads/master
+ description: 'For review 12345 and patch set 6, this will be refs/changes/45/12345/6. Default: Tip of master'
+ name: GERRIT_REFSPEC
+ - string:
+ default: master
+ description: 'Name of the branch you want to build from. We usually build from master'
+ name: GERRIT_BRANCH
+
+ builders:
+ - shell: /opt/qa/build.sh
+
+ wrappers:
+ - timestamps
+ - timeout:
+ timeout: 30
+ abort: true
+ type: absolute
diff --git a/build-gluster-org/jobs/netbsd7-regression.yml b/build-gluster-org/jobs/netbsd7-regression.yml
new file mode 100644
index 0000000..f151243
--- /dev/null
+++ b/build-gluster-org/jobs/netbsd7-regression.yml
@@ -0,0 +1,48 @@
+- job:
+ name: netbsd7-regression
+ node: netbsd7_regression
+ description: In development for now. Please disable this if it causes problems.
+ project-type: freestyle
+ concurrent: true
+
+ scm:
+ - glusterfs
+
+ properties:
+ - one-build-per-node
+
+ triggers:
+ - gerrit:
+ server-name: review.gluster.org
+ trigger-on:
+ - comment-added-contains-event:
+ comment-contains-value: "recheck netbsd"
+ - comment-added-event:
+ approval-category: Verified
+ approval-value: 1
+ projects:
+ - project-compare-type: 'PLAIN'
+ project-pattern: 'glusterfs'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**'
+
+ parameters:
+ - string:
+ default: refs/heads/master
+ description: 'For review 12345 and patch set 6, this will be refs/changes/45/12345/6. Default: Tip of master'
+ name: GERRIT_REFSPEC
+ - string:
+ default: master
+ description: 'Name of the branch you want to build from. We usually build from master'
+ name: GERRIT_BRANCH
+
+ builders:
+ - shell: !include-raw: ../scripts/netbsd7-regression.sh
+
+ wrappers:
+ - timestamps
+ - timeout:
+ timeout: 300
+ abort: true
+ type: absolute
diff --git a/build-gluster-org/jobs/properties.yml b/build-gluster-org/jobs/properties.yml
new file mode 100644
index 0000000..62af861
--- /dev/null
+++ b/build-gluster-org/jobs/properties.yml
@@ -0,0 +1,16 @@
+- property:
+ name: discard-after-x
+ properties:
+ - build-discarder:
+ days-to-keep: '{x}'
+ num-to-keep: '{x}'
+ artifact-days-to-keep: '{x}'
+ artifact-num-to-keep: '{x}'
+
+- property:
+ name: one-build-per-node
+ properties:
+ - throttle:
+ max-per-node: 1
+ enabled: true
+ option: project
diff --git a/build-gluster-org/jobs/publishers.yml b/build-gluster-org/jobs/publishers.yml
new file mode 100644
index 0000000..8b8ba3e
--- /dev/null
+++ b/build-gluster-org/jobs/publishers.yml
@@ -0,0 +1,19 @@
+- publisher:
+ name: rpm
+ publishers:
+ - archive:
+ allow-empty: false
+ artifacts: RPMS/**
+ default-excludes: true
+ fingerprint: false
+ only-if-success: false
+
+- publisher:
+ name: build-log
+ publishers:
+ - archive:
+ allow-empty: false
+ artifacts: RPMS/el6/i686/build.log
+ default-excludes: true
+ fingerprint: false
+ only-if-success: false
diff --git a/build-gluster-org/jobs/reboot-vm.yml b/build-gluster-org/jobs/reboot-vm.yml
new file mode 100644
index 0000000..06b1faf
--- /dev/null
+++ b/build-gluster-org/jobs/reboot-vm.yml
@@ -0,0 +1,45 @@
+- job:
+ name: reboot-vm
+ node: master
+ description: "Reboot a VM in the Rackspace Cloud."
+ project-type: freestyle
+
+ parameters:
+ - choice:
+ choices:
+ - freebsd0.cloud.gluster.org
+ - nbslave71.cloud.gluster.org
+ - nbslave72.cloud.gluster.org
+ - nbslave74.cloud.gluster.org
+ - nbslave75.cloud.gluster.org
+ - nbslave77.cloud.gluster.org
+ - nbslave79.cloud.gluster.org
+ - nbslave7c.cloud.gluster.org
+ - nbslave7g.cloud.gluster.org
+ - nbslave7h.cloud.gluster.org
+ - nbslave7i.cloud.gluster.org
+ - nbslave7j.cloud.gluster.org
+ - netbsd0.cloud.gluster.org
+ - netbsd7.cloud.gluster.org
+ - slave0.cloud.gluster.org
+ - slave1.cloud.gluster.org
+ - slave20.cloud.gluster.org
+ - slave21.cloud.gluster.org
+ - slave22.cloud.gluster.org
+ - slave23.cloud.gluster.org
+ - slave24.cloud.gluster.org
+ - slave25.cloud.gluster.org
+ - slave26.cloud.gluster.org
+ - slave27.cloud.gluster.org
+ - slave28.cloud.gluster.org
+ - slave29.cloud.gluster.org
+ - slave32.cloud.gluster.org
+ - slave33.cloud.gluster.org
+ - slave34.cloud.gluster.org
+ - slave46.cloud.gluster.org
+ - slave47.cloud.gluster.org
+ description: The machine to restart
+ name: VM
+
+ builders:
+ - shell: sudo /usr/local/bin/reboot-vm.py ${VM}
diff --git a/build-gluster-org/jobs/regression-test-burn-in.yml b/build-gluster-org/jobs/regression-test-burn-in.yml
new file mode 100644
index 0000000..a1d4df0
--- /dev/null
+++ b/build-gluster-org/jobs/regression-test-burn-in.yml
@@ -0,0 +1,34 @@
+- job:
+ name: regression-test-burn-in
+ node: rackspace_regression_2gb
+ description: Regression test run nightly
+ project-type: freestyle
+ concurrent: true
+
+ scm:
+ - git:
+ branches:
+ - origin/master
+ url: git://review.gluster.org/glusterfs.git
+ wipe-workspace: false
+
+ properties:
+ - one-build-per-node
+
+ triggers:
+ - timed: "H 0-23/4 * * *"
+
+ publishers:
+ - email:
+ recipients: maintainers@gluster.org
+ send-to-individuals: true
+
+ builders:
+ - shell: !include-raw: ../scripts/regression-test-burn-in.sh
+
+ wrappers:
+ - timestamps
+ - timeout:
+ timeout: 500
+ abort: true
+ type: absolute
diff --git a/build-gluster-org/jobs/release.yml b/build-gluster-org/jobs/release.yml
new file mode 100644
index 0000000..662b9fd
--- /dev/null
+++ b/build-gluster-org/jobs/release.yml
@@ -0,0 +1,32 @@
+- job:
+ name: release
+ node: master
+ description: glusterfs release script
+ project-type: freestyle
+
+ scm:
+ - glusterfs
+
+ parameters:
+ - string:
+ default: v3.7.0
+ description: Refspec to "git checkout" as the release code snapshot. Typically
+ a git annotated tag like "v3.7.0". Specifying a branch name will use the
+ current HEAD of that branch.
+ name: GERRIT_REFSPEC
+ - string:
+ default: 3.7.0
+ description: Version name to be assigned to the release.
+ name: RELEASE_VERSION
+ - bool:
+ default: false
+ description: Build and upload RPMs? Normally not needed, package
+ maintainers will build 'correct' RPMs.
+ name: BUILD_RPMS
+ - string:
+ default: packaging@gluster.org,maintainers@gluster.org
+ description: Mail addresses to send the announcement of the tarball too.
+ name: ANNOUNCE_EMAIL
+
+ builders:
+ - shell: /opt/qa/release.sh
diff --git a/build-gluster-org/jobs/smoke.yml b/build-gluster-org/jobs/smoke.yml
new file mode 100644
index 0000000..42d2628
--- /dev/null
+++ b/build-gluster-org/jobs/smoke.yml
@@ -0,0 +1,45 @@
+- job:
+ name: smoke
+ node: smoke_tests
+ description: Pre-commit Smoke test
+ project-type: freestyle
+
+ scm:
+ - glusterfs
+
+ properties:
+ - one-build-per-node
+
+ triggers:
+ - gerrit:
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: false
+ exclude-trivial-rebase: false
+ exclude-no-code-change: false
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: "recheck smoke"
+ server-name: review.gluster.org_for-smoke-jobs
+ projects:
+ - project-compare-type: 'PLAIN'
+ project-pattern: 'glusterfs'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**'
+
+ parameters:
+ - string:
+ default: refs/heads/master
+ description: 'For review 12345 and patch set 6, this will be refs/changes/45/12345/6. Default: Tip of master'
+ name: GERRIT_REFSPEC
+ - string:
+ default: master
+ description: 'Name of the branch you want to build from. We usually build from master'
+ name: GERRIT_BRANCH
+
+ builders:
+ - shell: !include-raw: ../scripts/smoke.sh
+
+ wrappers:
+ - timestamps
diff --git a/build-gluster-org/jobs/strfmt_errors.yml b/build-gluster-org/jobs/strfmt_errors.yml
new file mode 100644
index 0000000..5f8b2e4
--- /dev/null
+++ b/build-gluster-org/jobs/strfmt_errors.yml
@@ -0,0 +1,53 @@
+- job:
+ name: 'strfmt_errors'
+ node: glusterfs-devrpms
+ description: Check for strfmt errors in a 32-bit build run inside mock
+ project-type: freestyle
+ concurrent: true
+
+ properties:
+ - discard-after-x:
+ x: 50
+ - one-build-per-node
+
+ scm:
+ - glusterfs
+
+ triggers:
+ - gerrit:
+ server-name: review.gluster.org_for-smoke-jobs
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: false
+ exclude-trivial-rebase: false
+ exclude-no-code-change: false
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: "recheck smoke"
+ skip-vote:
+ failed: true
+ projects:
+ - project-compare-type: 'PLAIN'
+ project-pattern: 'glusterfs'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**'
+
+ parameters:
+ - string:
+ default: refs/heads/master
+ description: 'For review 12345 and patch set 6, this will be refs/changes/45/12345/6. Default: Tip of master'
+ name: GERRIT_REFSPEC
+ - string:
+ default: master
+ description: 'Name of the branch you want to build from. We usually build from master'
+ name: GERRIT_BRANCH
+
+ publishers:
+ - build-log
+
+ builders:
+ - shell: !include-raw: ../scripts/strfmt_errors.sh
+
+ wrappers:
+ - timestamps
diff --git a/build-gluster-org/scripts/centos-regression.sh b/build-gluster-org/scripts/centos-regression.sh
new file mode 100755
index 0000000..146a6ce
--- /dev/null
+++ b/build-gluster-org/scripts/centos-regression.sh
@@ -0,0 +1,112 @@
+#!/bin/bash
+
+MY_ENV=`env | sort`
+BURL=${BUILD_URL}consoleFull
+
+# Display all environment variables in the debugging log
+echo "Start time $(date)"
+echo
+echo "Display all environment variables"
+echo "*********************************"
+echo
+echo "$MY_ENV"
+echo
+
+
+# Remove any gluster daemon leftovers from aborted runs
+sudo -E bash /opt/qa/cleanup.sh
+
+# Clean up the git repo
+sudo rm -rf $WORKSPACE/.gitignore $WORKSPACE/*
+sudo chown -R jenkins:jenkins $WORKSPACE
+cd $WORKSPACE
+git reset --hard HEAD
+
+# Clean up other Gluster dirs
+sudo rm -rf /var/lib/glusterd/* /build/install /build/scratch >/dev/null 2>&1
+
+# Remove the many left over socket files in /var/run
+sudo rm -f /var/run/????????????????????????????????.socket >/dev/null 2>&1
+
+# Remove GlusterFS log files from previous runs
+sudo rm -rf /var/log/glusterfs/* /var/log/glusterfs/.cmd_log_history >/dev/null 2>&1
+
+JDIRS="/var/log/glusterfs /var/lib/glusterd /var/run/gluster /d /d/archived_builds /d/backends /d/build /d/logs /home/jenkins/root"
+sudo mkdir -p $JDIRS
+sudo chown jenkins:jenkins $JDIRS
+chmod 755 $JDIRS
+
+
+# Do not run tests that only modifies doc; does not consider chained changes or files in repo root
+DOC_ONLY=true
+for file in `git diff-tree --no-commit-id --name-only -r HEAD`; do
+ if [[ $file != doc/* ]]; then
+ DOC_ONLY=false
+ break
+ fi
+done
+if [[ "$DOC_ONLY" == true ]]; then
+ echo "Patch only modifies doc/*. Skipping further tests"
+ RET=0
+ VERDICT="Skipped tests for doc only change"
+ V="+1"
+ ssh build@review.gluster.org gerrit review --message "'$BURL : $VERDICT'" --project=glusterfs --label CentOS-regression=$V $GIT_COMMIT
+ exit $RET
+fi
+
+
+# Skip tests for patches that make distaf only changes
+# Do not run tests that only modifies distaf; does not consider chained changes or files in repo root
+DISTAF_ONLY=true
+for file in `git diff-tree --no-commit-id --name-only -r HEAD`; do
+ if [[ $file != tests/distaf/* ]]; then
+ DISTAF_ONLY=false
+ break
+ fi
+done
+if [[ "$DISTAF_ONLY" == true ]]; then
+ echo "Patch only modifies tests/distaf/*. Skipping further tests"
+ RET=0
+ VERDICT="Skipped tests for distaf only change"
+ V="+1"
+ ssh build@review.gluster.org gerrit review --message "'$BURL : $VERDICT'" --project=glusterfs --label CentOS-regression=$V $GIT_COMMIT
+ exit $RET
+fi
+
+# Build Gluster
+echo "Start time $(date)"
+echo
+echo "Build GlusterFS"
+echo "***************"
+echo
+/opt/qa/build.sh
+RET=$?
+if [ $RET != 0 ]; then
+ # Build failed, so abort early
+ RET=0
+ VERDICT="FAILED"
+ V="-1"
+ ssh build@review.gluster.org gerrit review --message "'$BURL : $VERDICT'" --project=glusterfs --label CentOS-regression=$V $GIT_COMMIT
+ exit $RET
+fi
+echo
+
+# Run the regression test
+echo "Start time $(date)"
+echo
+echo "Run the regression test"
+echo "***********************"
+echo
+sudo -E bash /opt/qa/regression.sh
+RET=$?
+if [ $RET = 0 ]; then
+ V="+1"
+ VERDICT="SUCCESS"
+else
+ V="-1"
+ VERDICT="FAILED"
+fi
+
+# Update Gerrit with the success/failure status
+ssh build@review.gluster.org gerrit review --message "'$BURL : $VERDICT'" --project=glusterfs --label CentOS-regression="$V" $GIT_COMMIT
+exit $RET
diff --git a/build-gluster-org/scripts/freebsd-smoke.sh b/build-gluster-org/scripts/freebsd-smoke.sh
new file mode 100755
index 0000000..f513bc8
--- /dev/null
+++ b/build-gluster-org/scripts/freebsd-smoke.sh
@@ -0,0 +1,20 @@
+#!/usr/local/bin/bash
+
+# Added by JD on 2016/03/07 because I don't have access to edit build.sh and I'm tired
+# of these tests failing due to permissions errors in glupy.
+glupydir=/usr/local/lib/python2.7/site-packages/gluster
+sudo mkdir -p $glupydir
+sudo chown jenkins $glupydir
+sudo chmod 755 $glupydir
+
+/opt/qa/build.sh
+RET=$?
+echo $RET
+if [ $RET -ne 0 ]; then
+ exit 1
+fi
+
+#sudo /opt/qa/smoke.sh
+#RET=$?
+#echo smoke.sh returned $RET
+exit $RET
diff --git a/build-gluster-org/scripts/glusterfs-devrpms.sh b/build-gluster-org/scripts/glusterfs-devrpms.sh
new file mode 100755
index 0000000..13b9177
--- /dev/null
+++ b/build-gluster-org/scripts/glusterfs-devrpms.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+./autogen.sh || exit 1
+./configure --enable-fusermount || exit 1
+cd extras/LinuxRPM
+make prep srcrpm || exit 1
+sudo mock -r {build_flag} --resultdir=${{WORKSPACE}}/RPMS/"%(dist)s"/"%(target_arch)s"/ --cleanup-after --rebuild glusterfs*src.rpm || exit 1
diff --git a/build-gluster-org/scripts/glusterfs-rpms.sh b/build-gluster-org/scripts/glusterfs-rpms.sh
new file mode 100755
index 0000000..e617bda
--- /dev/null
+++ b/build-gluster-org/scripts/glusterfs-rpms.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+./autogen.sh || exit 1
+./configure --enable-fusermount || exit 1
+cd extras/LinuxRPM
+make prep srcrpm || exit 1
+sudo mock -r {build_flag} --resultdir=${{WORKSPACE}}/RPMS/"%(dist)s"/"%(target_arch)s"/ --rebuild glusterfs*src.rpm || exit 1
diff --git a/build-gluster-org/scripts/netbsd6-smoke.sh b/build-gluster-org/scripts/netbsd6-smoke.sh
new file mode 100755
index 0000000..bdc029d
--- /dev/null
+++ b/build-gluster-org/scripts/netbsd6-smoke.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+/opt/qa/build.sh
+RET=$?
+echo $RET
+if [ $RET -ne 0 ]; then
+ exit 1
+fi
+
+exit $RET
diff --git a/build-gluster-org/scripts/netbsd7-regression.sh b/build-gluster-org/scripts/netbsd7-regression.sh
new file mode 100755
index 0000000..185ad63
--- /dev/null
+++ b/build-gluster-org/scripts/netbsd7-regression.sh
@@ -0,0 +1,122 @@
+#!/bin/bash
+
+MY_ENV=`env | sort`
+BURL=${BUILD_URL}consoleFull
+
+# Display all environment variables in the debugging log
+echo "Start time $(date)"
+echo
+echo "Display all environment variables"
+echo "*********************************"
+echo
+echo "$MY_ENV"
+echo
+
+
+# Exit early with success if the change is on release-3.{5,6}
+# NetBSD regression doesn't run successfully on release-3.{5,6}
+if [ $GERRIT_BRANCH = "release-3.5" -o $GERRIT_BRANCH = "release-3.6" ]; then
+ echo "Skipping regression run for ${GERRIT_BRANCH}"
+ RET=0
+ VERDICT="Skipped for ${GERRIT_BRANCH}"
+ V="+1"
+ ssh nb7build@review.gluster.org gerrit review --message "'$BURL : $VERDICT'" --project=glusterfs --code-review=0 --label NetBSD-regression=$V $GIT_COMMIT
+ exit $RET
+fi
+
+# Remove any gluster daemon leftovers from aborted runs
+ps -axl | grep gluster
+su -l root -c "pkill gluster"
+su -l root -c /opt/qa/cleanup.sh >/dev/null 2>&1
+
+# Fix installation permissions
+su -l root -c "chown -R jenkins /usr/pkg/lib/python2.7/site-packages/gluster"
+
+# Clean up the git repo
+su -l root -c "rm -rf $WORKSPACE/.gitignore $WORKSPACE/*"
+su -l root -c "chown -R jenkins $WORKSPACE"
+cd $WORKSPACE
+git reset --hard HEAD
+
+# Clean up other Gluster dirs
+su -l root -c "rm -rf /var/lib/glusterd/* /build/install /build/scratch"
+
+# Remove the many left over socket files in /var/run
+su -l root -c "rm -f /var/run/glusterd.socket"
+
+# Remove GlusterFS log files from previous runs
+su -l root -c "rm -rf /var/log/glusterfs/* /var/log/glusterfs/.cmd_log_history"
+
+# Do not run tests that only modifies doc; does not consider chained changes or files in repo root
+DOC_ONLY=true
+for file in `git diff-tree --no-commit-id --name-only -r HEAD`; do
+ if [[ $file != doc/* ]]; then
+ DOC_ONLY=false
+ break
+ fi
+done
+if [[ "$DOC_ONLY" == true ]]; then
+ echo "Patch only modifies doc/*. Skipping further tests"
+ RET=0
+ VERDICT="Skipped tests for doc only change"
+ V="+1"
+ ssh nb7build@review.gluster.org gerrit review --message "'$BURL : $VERDICT'" --project=glusterfs --code-review=0 --label NetBSD-regression=$V $GIT_COMMIT
+ exit $RET
+fi
+
+# Do not run tests that only modifies distaf; does not consider chained changes or files in repo root
+DISTAF_ONLY=true
+for file in `git diff-tree --no-commit-id --name-only -r HEAD`; do
+ if [[ $file != tests/distaf/* ]]; then
+ DISTAF_ONLY=false
+ break
+ fi
+done
+if [[ "$DISTAF_ONLY" == true ]]; then
+ echo "Patch only modifies tests/distaf/*. Skipping further tests"
+ RET=0
+ VERDICT="Skipped tests for distaf only change"
+ V="+1"
+ ssh nb7build@review.gluster.org gerrit review --message "'$BURL : $VERDICT'" --project=glusterfs --code-review=0 --label NetBSD-regression=$V $GIT_COMMIT
+ exit $RET
+fi
+
+# Build Gluster
+echo "Start time $(date)"
+echo
+echo "Build GlusterFS"
+echo "***************"
+echo
+/opt/qa/build.sh
+RET=$?
+if [ $RET != 0 ]; then
+ # Build failed, so abort early
+ exit 1
+fi
+echo
+
+# regression tests assumes build is done inside source directory
+# which is not the case here. The simpliest fix is to copy the
+# required object back to source directory
+cp /build/scratch/contrib/argp-standalone/libargp.a \
+ $WORKSPACE/contrib/argp-standalone
+
+# Run the regression test
+echo "Start time $(date)"
+echo "Run the regression test"
+echo "***********************"
+echo
+su -l root -c "cd $WORKSPACE && /opt/qa/regression.sh"
+RET=$?
+if [ $RET = 0 ]; then
+ V="+1"
+ R="0"
+ VERDICT="SUCCESS"
+else
+ V="-1"
+ R="0"
+ VERDICT="FAILED"
+fi
+
+ssh nb7build@review.gluster.org gerrit review --message "'$BURL : $VERDICT'" --project=glusterfs --code-review=0 --label NetBSD-regression=$V $GIT_COMMIT
+exit $RET
diff --git a/build-gluster-org/scripts/reboot-vm.sh b/build-gluster-org/scripts/reboot-vm.sh
new file mode 100755
index 0000000..cf68fa6
--- /dev/null
+++ b/build-gluster-org/scripts/reboot-vm.sh
@@ -0,0 +1 @@
+sudo /usr/local/bin/reboot-vm.py ${VM}
diff --git a/build-gluster-org/scripts/regression-test-burn-in.sh b/build-gluster-org/scripts/regression-test-burn-in.sh
new file mode 100755
index 0000000..a716658
--- /dev/null
+++ b/build-gluster-org/scripts/regression-test-burn-in.sh
@@ -0,0 +1,67 @@
+#!/bin/bash
+
+MY_ENV=`env | sort`
+BURL=${BUILD_URL}consoleFull
+
+# Display all environment variables in the debugging log
+echo "Start time $(date)"
+echo
+echo "Display all environment variables"
+echo "*********************************"
+echo
+echo "$MY_ENV"
+echo
+
+
+# Remove any gluster daemon leftovers from aborted runs
+sudo -E bash /opt/qa/cleanup.sh
+
+# Clean up the git repo
+sudo rm -rf $WORKSPACE/.gitignore $WORKSPACE/*
+sudo chown -R jenkins:jenkins $WORKSPACE
+cd $WORKSPACE
+git reset --hard HEAD
+
+# Clean up other Gluster dirs
+sudo rm -rf /var/lib/glusterd/* /build/install /build/scratch >/dev/null 2>&1
+
+# Remove the many left over socket files in /var/run
+sudo rm -f /var/run/????????????????????????????????.socket >/dev/null 2>&1
+
+# Remove GlusterFS log files from previous runs
+sudo rm -rf /var/log/glusterfs/* /var/log/glusterfs/.cmd_log_history >/dev/null 2>&1
+
+JDIRS="/var/log/glusterfs /var/lib/glusterd /var/run/gluster /d /d/archived_builds /d/backends /d/build /d/logs /home/jenkins/root"
+sudo mkdir -p $JDIRS
+sudo chown jenkins:jenkins $JDIRS
+chmod 755 $JDIRS
+
+# Build Gluster
+echo "Start time $(date)"
+echo
+echo "Build GlusterFS"
+echo "***************"
+echo
+/opt/qa/build.sh
+RET=$?
+if [ $RET != 0 ]; then
+ # Build failed, so abort early
+ RET=0
+ VERDICT="FAILED"
+ V="-1"
+ ssh build@review.gluster.org gerrit review --message "'$BURL : $VERDICT'" --project=glusterfs --label CentOS-regression=$V $GIT_COMMIT
+ exit $RET
+fi
+echo
+
+# Run the regression test
+echo "Start time $(date)"
+echo
+echo "Run the regression test"
+echo "***********************"
+echo
+sudo -E bash /opt/qa/regression.sh
+
+RET=$?
+
+exit $RET
diff --git a/build-gluster-org/scripts/smoke.sh b/build-gluster-org/scripts/smoke.sh
new file mode 100755
index 0000000..b6a6b75
--- /dev/null
+++ b/build-gluster-org/scripts/smoke.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+BURL=${BUILD_URL}consoleFull
+
+JDIRS="/var/log/glusterfs /var/lib/glusterd /var/lib/glusterd/groups/virt /var/run/gluster /d /d/archived_builds /d/backends /d/build /d/logs /home/jenkins/root /build/*"
+sudo mkdir -p $JDIRS
+echo Return code = $?
+sudo chown -RH jenkins:jenkins $JDIRS
+echo Return code = $?
+sudo chmod -R 755 $JDIRS
+echo Return code = $?
+
+sudo yum -y install cmockery2 cmockery2-devel
+/opt/qa/build.sh
+RET=$?
+if [ $RET -ne 0 ]; then
+ exit 1
+fi
+sudo /opt/qa/smoke.sh
+RET=$?
+
+echo smoke.sh returned $RET
+exit $RET
diff --git a/build-gluster-org/scripts/strfmt_errors.sh b/build-gluster-org/scripts/strfmt_errors.sh
new file mode 100755
index 0000000..5cafce9
--- /dev/null
+++ b/build-gluster-org/scripts/strfmt_errors.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+./autogen.sh || exit 1
+./configure --enable-fusermount || exit 1
+cd extras/LinuxRPM
+make prep srcrpm || exit 1
+sudo mock -r 'epel-6-i386' --resultdir=${WORKSPACE}/RPMS/"%(dist)s"/"%(target_arch)s"/ --cleanup-after --rebuild glusterfs*src.rpm || exit 1
+
+rm -f warnings.txt
+grep -E ".*: warning: format '%.*' expects( argument of)? type '.*', but argument .* has type 'ssize_t" ${WORKSPACE}/RPMS/el6/i686/build.log | tee -a warnings.txt
+grep -E ".+: warning: format '%.+' expects( argument of)? type '.+', but argument .+ has type 'size_t" ${WORKSPACE}/RPMS/el6/i686/build.log | tee -a warnings.txt
+
+WARNINGS=$(wc -l < warnings.txt)
+if [ "$WARNINGS" -gt "0" ];
+then
+ exit 1
+fi