From d5abc28161a9f724968207c6698a28f9fe61f04e Mon Sep 17 00:00:00 2001 From: Fatih Degirmenci Date: Mon, 10 Oct 2016 11:26:51 +0200 Subject: fuel: Proposal for specifying scenario name in commit message Please take a look at fuel-basic-exp.sh for the proposal. Apart from scenario name input proposal, jobs and script templatest have been created as well. Change-Id: I53b74b2e1ed34acb1f54b7ab21823227fff86d10 Signed-off-by: Fatih Degirmenci --- jjb/fuel/fuel-basic-exp.sh | 18 ++ jjb/fuel/fuel-build-exp.sh | 10 ++ jjb/fuel/fuel-deploy-exp.sh | 10 ++ jjb/fuel/fuel-smoke-test-exp.sh | 10 ++ jjb/fuel/fuel-verify-jobs-experimental.yml | 264 +++++++++++++++++++++++++++++ 5 files changed, 312 insertions(+) create mode 100755 jjb/fuel/fuel-basic-exp.sh create mode 100755 jjb/fuel/fuel-build-exp.sh create mode 100755 jjb/fuel/fuel-deploy-exp.sh create mode 100755 jjb/fuel/fuel-smoke-test-exp.sh create mode 100644 jjb/fuel/fuel-verify-jobs-experimental.yml diff --git a/jjb/fuel/fuel-basic-exp.sh b/jjb/fuel/fuel-basic-exp.sh new file mode 100755 index 000000000..a70a0c765 --- /dev/null +++ b/jjb/fuel/fuel-basic-exp.sh @@ -0,0 +1,18 @@ +#!/bin/bash +set -o nounset + +echo "-----------------------------------------------------------------------" +echo $GERRIT_CHANGE_COMMIT_MESSAGE +echo "-----------------------------------------------------------------------" + +# proposal for specifying the scenario name in commit message +# currently only 1 scenario name is supported but depending on +# the need, it can be expanded, supporting multiple scenarios +# using comma separated list or something +SCENARIO_NAME_PATTERN="(?<=@scenario:).*?(?=@)" +SCENARIO_NAME=(echo $GERRIT_CHANGE_COMMIT_MESSAGE | grep -oP "$SCENARIO_NAME_PATTERN") +if [[ $? -ne 0 ]]; then + echo "The patch verification will be done only with build!" +else + echo "Will run full verification; build, deploy, and smoke test using scenario $SCENARIO_NAME" +fi diff --git a/jjb/fuel/fuel-build-exp.sh b/jjb/fuel/fuel-build-exp.sh new file mode 100755 index 000000000..f7f613dc0 --- /dev/null +++ b/jjb/fuel/fuel-build-exp.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [[ "$JOB_NAME" =~ (verify|merge|daily|weekly) ]]; then + JOB_TYPE=${BASH_REMATCH[0]} +else + echo "Unable to determine job type!" + exit 1 +fi + +echo "Not activated!" diff --git a/jjb/fuel/fuel-deploy-exp.sh b/jjb/fuel/fuel-deploy-exp.sh new file mode 100755 index 000000000..f7f613dc0 --- /dev/null +++ b/jjb/fuel/fuel-deploy-exp.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [[ "$JOB_NAME" =~ (verify|merge|daily|weekly) ]]; then + JOB_TYPE=${BASH_REMATCH[0]} +else + echo "Unable to determine job type!" + exit 1 +fi + +echo "Not activated!" diff --git a/jjb/fuel/fuel-smoke-test-exp.sh b/jjb/fuel/fuel-smoke-test-exp.sh new file mode 100755 index 000000000..f7f613dc0 --- /dev/null +++ b/jjb/fuel/fuel-smoke-test-exp.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [[ "$JOB_NAME" =~ (verify|merge|daily|weekly) ]]; then + JOB_TYPE=${BASH_REMATCH[0]} +else + echo "Unable to determine job type!" + exit 1 +fi + +echo "Not activated!" diff --git a/jjb/fuel/fuel-verify-jobs-experimental.yml b/jjb/fuel/fuel-verify-jobs-experimental.yml new file mode 100644 index 000000000..ae83b08cf --- /dev/null +++ b/jjb/fuel/fuel-verify-jobs-experimental.yml @@ -0,0 +1,264 @@ +- project: + # TODO: rename the project name + # TODO: get rid of appended -exp from the remainder of the file + name: 'fuel-verify-jobs-experimental' + + project: 'fuel' + + installer: 'fuel' +#------------------------------------ +# branch definitions +#------------------------------------ + # TODO: enable master once things settle + stream-exp: + - experimental: + branch: 'stable/{stream-exp}' + gs-pathname: '/{stream-exp}' + disabled: false +#------------------------------------ +# patch verification phases +#------------------------------------ + phase: + - 'basic': + # this phase does basic commit message check, unit test and so on + slave-label: 'opnfv-build' + - 'build': + # this phase builds artifacts if valid for given installer + slave-label: 'opnfv-build-ubuntu' + - 'deploy-virtual': + # this phase does virtual deployment using the artifacts produced in previous phase + slave-label: 'fuel-virtual' + - 'smoke-test': + # this phase runs functest smoke test + slave-label: 'fuel-virtual' +#------------------------------------ +# jobs +#------------------------------------ + jobs: + - 'fuel-verify-{stream-exp}' + - 'fuel-verify-{phase}-{stream-exp}' +#------------------------------------ +# job templates +#------------------------------------ +- job-template: + name: 'fuel-verify-{stream-exp}' + + project-type: multijob + + disabled: '{obj:disabled}' + + # TODO: this is valid for experimental only + # enable concurrency for master once things settle + concurrent: false + + properties: + - throttle: + enabled: true + max-total: 4 + option: 'project' + + scm: + - gerrit-trigger-scm: + credentials-id: '{ssh-credentials}' + refspec: '$GERRIT_REFSPEC' + choosing-strategy: 'gerrit' + + wrappers: + - ssh-agent-credentials: + users: + - '{ssh-credentials}' + - timeout: + timeout: 360 + fail: true + + 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' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'ci/**' + - compare-type: ANT + pattern: 'build/**' + - compare-type: ANT + pattern: 'deploy/**' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**' + readable-message: true + + parameters: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: '{branch}' + - 'opnfv-build-defaults' + - 'fuel-verify-defaults-exp': + gs-pathname: '{gs-pathname}' + + builders: + - description-setter: + description: "Built on $NODE_NAME" + - multijob: + name: basic + condition: SUCCESSFUL + projects: + - name: 'fuel-verify-basic-{stream-exp}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: build + condition: SUCCESSFUL + projects: + - name: 'fuel-verify-build-{stream-exp}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: 'fuel-verify-deploy-virtual-{stream-exp}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: smoke-test + condition: SUCCESSFUL + projects: + - name: 'fuel-verify-smoke-test-{stream-exp}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + +- job-template: + name: 'fuel-verify-{phase}-{stream-exp}' + + disabled: '{obj:disabled}' + + concurrent: true + + properties: + - throttle: + enabled: true + max-total: 6 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'fuel-verify-deploy-.*' + - 'fuel-verify-test-.*' + block-level: 'NODE' + + scm: + - gerrit-trigger-scm: + credentials-id: '{ssh-credentials}' + refspec: '$GERRIT_REFSPEC' + choosing-strategy: 'gerrit' + + wrappers: + - ssh-agent-credentials: + users: + - '{ssh-credentials}' + - timeout: + timeout: 360 + fail: true + parameters: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: '{branch}' + - '{slave-label}-defaults' + - '{installer}-defaults' + - 'fuel-verify-defaults-exp': + gs-pathname: '{gs-pathname}' + + builders: + - description-setter: + description: "Built on $NODE_NAME" + - '{project}-verify-{phase}-macro-exp' +#------------------------------------ +# builder macros +#------------------------------------ +- builder: + name: 'fuel-verify-basic-macro-exp' + builders: + - shell: + !include-raw: ./fuel-basic-exp.sh + +- builder: + name: 'fuel-verify-build-macro-exp' + builders: + - shell: + !include-raw: ./fuel-build-exp.sh + - shell: + !include-raw: ./fuel-workspace-cleanup.sh + +- builder: + name: 'fuel-verify-deploy-virtual-macro-exp' + builders: + - shell: + !include-raw: ./fuel-deploy-exp.sh + +- builder: + name: 'fuel-verify-smoke-test-macro-exp' + builders: + - shell: + !include-raw: ./fuel-smoke-test-exp.sh +#------------------------------------ +# parameter macros +#------------------------------------ +- parameter: + name: 'fuel-verify-defaults-exp' + parameters: + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - string: + name: CACHE_DIRECTORY + default: $HOME/opnfv/cache/$INSTALLER_TYPE + description: "Directory where the cache to be used during the build is located." + - string: + name: GS_URL + default: artifacts.opnfv.org/$PROJECT{gs-pathname} + description: "URL to Google Storage." -- cgit 1.2.3-korg