From 099e64079e85a019578a0121ea3bb6a5ae8531a4 Mon Sep 17 00:00:00 2001 From: Daniel Horak Date: Fri, 9 Feb 2018 08:52:33 +0100 Subject: [PATCH 1/8] pr-tests: initiall commit --- .../tendrl-build-triggers-pr-tests.yml | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 jobs/build-triggers/tendrl-build-triggers-pr-tests.yml diff --git a/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml b/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml new file mode 100644 index 0000000..ccb5351 --- /dev/null +++ b/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml @@ -0,0 +1,141 @@ +--- +- job-template: + name: "tendrl-pr-trigger-tests-{package_name}" + display-name: 'Tendrl test (PR) - {package_name}' + description: | + Job triggering test suite execution.
+
+ It might be triggered by following phrase in comment in the respective PR: +
+      run tests
+      
+ And it is also possible to specify dependencies on PRs from other repos + in following format (in the PR description or in the comment triggering + the tests) +
+      Depends on: <repo-name>/pr<pr_id> <repo2-name>/pr<pr2_id>
+      
+ where <repo-name> is repo name including tendrl- prefix + and <pr_id> is PR number. +

+ Maintainer: Daniel Horak
+ Team Contact: tendrl-devel
+ JJB Code Location: tendrl-ci
+ Managed by Jenkins Job Builder. Do not edit via web.
+ project-type: freestyle + package_prefix: "tendrl-" + defaults: global + disabled: false + concurrent: false + quiet-period: 0 + block-downstream: false + block-upstream: false + node: 'tendrl-ci-slave01' + triggers: "{obj:triggers}" + scm: "{obj:scm}" + properties: + - github: + url: 'https://github.com/Tendrl/{package_name}/' + wrappers: + - timeout: + timeout: 60 + abort: true + type: absolute + parameters: + - string: + name: ADDITIONAL_REPOS + default: "" + description: "Coma separated list of additional repos." + - string: + name: ADDITIONAL_REPOS_USM_SERVER + default: "" + description: "Coma separated list of additional repos." + - string: + name: ADDITIONAL_REPOS_USM_NODES + default: "" + description: "Coma separated list of additional repos." + - string: + name: ADDITIONAL_REPOS_USM_CLIENT + default: "" + description: "Coma separated list of additional repos." + builders: + - shell: | + #!/bin/bash -xe + echo + if [[ "${{ghprbPullId}}" ]]; then + echo "ghprbPullId: ${{ghprbPullId}}" + echo "ghprbCommentBody: ${{ghprbCommentBody}}" + echo "ghprbPullLongDescription: ${{ghprbPullLongDescription}}" + ADDITIONAL_REPOS="${{ADDITIONAL_REPOS}},http://artifacts.ci.centos.org/tendrl/pr/{package_prefix}{package_name}/pr${{ghprbPullId}}/{package_prefix}{package_name}-pr${{ghprbPullId}}.repo" + echo + echo "Parse ghprbCommentBody and ghprbPullLongDescription for dependent PRs." + # filter only lines containing "depends on:" string (and remove it) + # so it will iterate over list similar to this: + # tendrl-notifier/pr153 tendrl-commons/pr820 ... + for dependency in $(echo -e "${{ghprbCommentBody}}\n${{ghprbPullLongDescription}}" | \ + grep -i "depends on:" | sed 's/depends on: //I'); do + package=${{dependency%/*}} + pr_id=${{dependency#*/}} + ADDITIONAL_REPOS="${{ADDITIONAL_REPOS}},http://artifacts.ci.centos.org/tendrl/pr/${{package}}/${{pr_id}}/${{package}}-${{pr_id}}.repo" + done + echo + fi + + echo "Run whole test suite." + echo "##############################################################" + echo + + # Prepare env.sh file + echo > ${{WORKSPACE}}/env.sh + echo "ADDITIONAL_REPOS=${{ADDITIONAL_REPOS}}" >> ${{WORKSPACE}}/env.sh + echo "ADDITIONAL_REPOS_USM_SERVER=${{ADDITIONAL_REPOS_USM_SERVER}}" >> ${{WORKSPACE}}/env.sh + echo "ADDITIONAL_REPOS_USM_NODES=${{ADDITIONAL_REPOS_USM_NODES}}" >> ${{WORKSPACE}}/env.sh + echo "ADDITIONAL_REPOS_USM_CLIENT=${{ADDITIONAL_REPOS_USM_CLIENT}}" >> ${{WORKSPACE}}/env.sh + + - trigger-builds: + - project: "tendrl-2-cluster-gluster" + property-file: env.sh + block: true + + publishers: + - email: + recipients: dahorak@redhat.com + + +- project: + name: 'Test_suite' + triggers: + - github-pull-request: + admin-list: + - dahorak + org-list: + - Tendrl + allow-whitelist-orgs-as-admins: true + trigger-phrase: '.*run test.*' + only-trigger-phrase: true + skip-build-phrase: 'no test' + github-hooks: true + cancel-builds-on-update: true + status-context: 'CentOS CI - tests' + status-add-test-results: false + scm: + - git: + url: 'https://github.com/Tendrl/{package_name}' + refspec: "+refs/pull/${{ghprbPullId}}/*:refs/remotes/origin/pr/${{ghprbPullId}}/*" + basedir: tendrl-{package_name} + skip-tag: true + wipe-workspace: true + jobs: + - "tendrl-pr-trigger-tests-{package_name}" + package_name: + - api + - commons + - gluster-integration + - monitoring-integration + - node-agent + - notifier + - tendrl-ansible: + package_prefix: "" + - tendrl-selinux: + package_prefix: "" + - ui From b43e11cff7971dfcc1e92aa67badc541906226e0 Mon Sep 17 00:00:00 2001 From: Daniel Horak Date: Tue, 13 Feb 2018 10:01:33 +0100 Subject: [PATCH 2/8] pr-tests: use packages from master branch * use tendrl/tendrl copr repo, instead of tendrl/release repo --- jobs/build-triggers/tendrl-build-triggers-pr-tests.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml b/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml index ccb5351..2510745 100644 --- a/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml +++ b/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml @@ -87,6 +87,12 @@ # Prepare env.sh file echo > ${{WORKSPACE}}/env.sh + # use cop tendrl/tendrl (master) repo + echo "TENDRL_REPO_URL=http://copr-be.cloud.fedoraproject.org/results/tendrl/tendrl/epel-7-x86_64/" >> ${{WORKSPACE}}/env.sh + echo "TENDRL_REPO_GPGKEY_URL=https://copr-be.cloud.fedoraproject.org/results/tendrl/tendrl/pubkey.gpg" >> ${{WORKSPACE}}/env.sh + echo "TENDRL_DEPENDENCIES_REPO_URL=http://copr-be.cloud.fedoraproject.org/results/tendrl/dependencies/epel-7-x86_64/" >> ${{WORKSPACE}}/env.sh + echo "TENDRL_DEPENDENCIES_REPO_GPGKEY_URL=https://copr-be.cloud.fedoraproject.org/results/tendrl/dependencies/pubkey.gpg" >> ${{WORKSPACE}}/env.sh + # configure additional repos echo "ADDITIONAL_REPOS=${{ADDITIONAL_REPOS}}" >> ${{WORKSPACE}}/env.sh echo "ADDITIONAL_REPOS_USM_SERVER=${{ADDITIONAL_REPOS_USM_SERVER}}" >> ${{WORKSPACE}}/env.sh echo "ADDITIONAL_REPOS_USM_NODES=${{ADDITIONAL_REPOS_USM_NODES}}" >> ${{WORKSPACE}}/env.sh From e9d1fba1d642bc1ec631f51973ea574d0309870e Mon Sep 17 00:00:00 2001 From: Daniel Horak Date: Wed, 14 Feb 2018 08:32:14 +0100 Subject: [PATCH 3/8] pr-tests: add white-listed people --- .../tendrl-build-triggers-pr-tests.yml | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml b/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml index 2510745..060760b 100644 --- a/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml +++ b/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml @@ -114,9 +114,32 @@ - github-pull-request: admin-list: - dahorak + white-list: + - a2batic + - cloudbehl + - fbalak + - gnehapk + - GowthamShanmugam + - julienlim + - ktdreyer + - ltrilety + - mbukatov + - mcarrano + - nnDarshan + - nthomas-redhat + - r0h4n + - rishubhjain + - sankarshanmukhopadhyay + - scuttlemonkey + - shirshendu + - shtripat + - sidhax + - tigert + - TimothyAsir + - TimothyAsirJeyasing org-list: - Tendrl - allow-whitelist-orgs-as-admins: true + allow-whitelist-orgs-as-admins: false trigger-phrase: '.*run test.*' only-trigger-phrase: true skip-build-phrase: 'no test' From 39c11520101029a2951134fa6fb90fa688d17abe Mon Sep 17 00:00:00 2001 From: Daniel Horak Date: Wed, 14 Feb 2018 08:32:49 +0100 Subject: [PATCH 4/8] pr-tests: specify branches to origin/pr/** - limit the job execution only for PR updates --- jobs/build-triggers/tendrl-build-triggers-pr-tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml b/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml index 060760b..ef68685 100644 --- a/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml +++ b/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml @@ -151,6 +151,8 @@ - git: url: 'https://github.com/Tendrl/{package_name}' refspec: "+refs/pull/${{ghprbPullId}}/*:refs/remotes/origin/pr/${{ghprbPullId}}/*" + branches: + - "origin/pr/**" basedir: tendrl-{package_name} skip-tag: true wipe-workspace: true From f217ac67094e5d1837c31623cc73dd1dd8c3b709 Mon Sep 17 00:00:00 2001 From: Daniel Horak Date: Wed, 14 Feb 2018 14:24:35 +0100 Subject: [PATCH 5/8] pr-tests: update log messages --- jobs/build-triggers/tendrl-build-triggers-pr-tests.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml b/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml index ef68685..99364e1 100644 --- a/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml +++ b/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml @@ -81,10 +81,6 @@ echo fi - echo "Run whole test suite." - echo "##############################################################" - echo - # Prepare env.sh file echo > ${{WORKSPACE}}/env.sh # use cop tendrl/tendrl (master) repo @@ -97,7 +93,12 @@ echo "ADDITIONAL_REPOS_USM_SERVER=${{ADDITIONAL_REPOS_USM_SERVER}}" >> ${{WORKSPACE}}/env.sh echo "ADDITIONAL_REPOS_USM_NODES=${{ADDITIONAL_REPOS_USM_NODES}}" >> ${{WORKSPACE}}/env.sh echo "ADDITIONAL_REPOS_USM_CLIENT=${{ADDITIONAL_REPOS_USM_CLIENT}}" >> ${{WORKSPACE}}/env.sh + set +x + echo + echo "##############################################################" + echo "Run whole test suite." + echo - trigger-builds: - project: "tendrl-2-cluster-gluster" property-file: env.sh From be4dd70dd1c6b1507ef1acb63e19c53d0a09e9e1 Mon Sep 17 00:00:00 2001 From: Daniel Horak Date: Wed, 21 Feb 2018 10:52:08 +0100 Subject: [PATCH 6/8] pr-tests: fix indentation and trailing spaces --- jobs/build-triggers/tendrl-build-triggers-pr-tests.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml b/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml index 99364e1..8f436a6 100644 --- a/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml +++ b/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml @@ -100,14 +100,14 @@ echo "Run whole test suite." echo - trigger-builds: - - project: "tendrl-2-cluster-gluster" - property-file: env.sh - block: true + - project: "tendrl-2-cluster-gluster" + property-file: env.sh + block: true publishers: - email: recipients: dahorak@redhat.com - + - project: name: 'Test_suite' From 58c2a681cee018b38aaf946a72f6eee0731ef382 Mon Sep 17 00:00:00 2001 From: Daniel Horak Date: Wed, 14 Mar 2018 15:13:24 +0100 Subject: [PATCH 7/8] use TENDRL_REPO variable - changes related to usage of tendrl-ansible changes --- jobs/build-triggers/tendrl-build-triggers-pr-tests.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml b/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml index 8f436a6..0203953 100644 --- a/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml +++ b/jobs/build-triggers/tendrl-build-triggers-pr-tests.yml @@ -84,10 +84,7 @@ # Prepare env.sh file echo > ${{WORKSPACE}}/env.sh # use cop tendrl/tendrl (master) repo - echo "TENDRL_REPO_URL=http://copr-be.cloud.fedoraproject.org/results/tendrl/tendrl/epel-7-x86_64/" >> ${{WORKSPACE}}/env.sh - echo "TENDRL_REPO_GPGKEY_URL=https://copr-be.cloud.fedoraproject.org/results/tendrl/tendrl/pubkey.gpg" >> ${{WORKSPACE}}/env.sh - echo "TENDRL_DEPENDENCIES_REPO_URL=http://copr-be.cloud.fedoraproject.org/results/tendrl/dependencies/epel-7-x86_64/" >> ${{WORKSPACE}}/env.sh - echo "TENDRL_DEPENDENCIES_REPO_GPGKEY_URL=https://copr-be.cloud.fedoraproject.org/results/tendrl/dependencies/pubkey.gpg" >> ${{WORKSPACE}}/env.sh + echo "TENDRL_REPO=master" >> ${{WORKSPACE}}/env.sh # configure additional repos echo "ADDITIONAL_REPOS=${{ADDITIONAL_REPOS}}" >> ${{WORKSPACE}}/env.sh echo "ADDITIONAL_REPOS_USM_SERVER=${{ADDITIONAL_REPOS_USM_SERVER}}" >> ${{WORKSPACE}}/env.sh From f82c99d39927d69f6417a51db25505a74e5e07cf Mon Sep 17 00:00:00 2001 From: Daniel Horak Date: Wed, 18 Apr 2018 16:52:01 +0200 Subject: [PATCH 8/8] remove sds-mgmt-dev@redhat.com list - it is not possible to send emails to this list outside of RH (from ci@centos.org) --- jobs/build-triggers/tendrl-build-triggers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jobs/build-triggers/tendrl-build-triggers.yml b/jobs/build-triggers/tendrl-build-triggers.yml index 287b02d..d263137 100644 --- a/jobs/build-triggers/tendrl-build-triggers.yml +++ b/jobs/build-triggers/tendrl-build-triggers.yml @@ -113,7 +113,7 @@ condition: ALWAYS - email: - recipients: dahorak@redhat.com sds-mgmt-dev@redhat.com + recipients: dahorak@redhat.com send-to-individuals: false