diff options
Diffstat (limited to 'build-gluster-org')
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 |