From d1378b9f3d570d07af5a8f08144070059105373f Mon Sep 17 00:00:00 2001 From: Fatih Degirmenci Date: Tue, 4 Apr 2017 09:18:54 -0700 Subject: xci: Introduce XCI_LOOP variable to control what to do properly XCI has different jobs/loops to run - patchset verification jobs (currently bifrost and osa in future) - periodic jobs (bifrost and osa) - daily jobs (for OPNFV platform deployment and testing) The same scripts/playbooks used by XCI will also be used by developers. We need to do different things depending on the context the scripts and playbooks are executed. - periodic jobs will use latest of everything to find working versions of the components. (periodic osa will use unpinned role requirements for example) - daily jobs will use pinned versions in order to bring up the platform and run OPNFV testing against it. (daily deployment will use pinned versions and role requirements for example) - developers might choose to use pinned versions or latest Depending on what loop we are running, we need to do things differently in scripts and playbooks. This variable will help us to do this in easy way. We can of course do pattern matching of the job name but it will not work if the scripts are used outside of Jenkins. The default loop for non-Jenkins execution is set to daily as we want developers to use working versions unless they change it to something else intentionally. Change-Id: Iff69c77ae3d9db2c14de1783ce098da9e9f0c83d Signed-off-by: Fatih Degirmenci --- jjb/xci/bifrost-periodic-jobs.yml | 3 +++ jjb/xci/bifrost-verify-jobs.yml | 3 +++ jjb/xci/osa-periodic-jobs.yml | 3 +++ jjb/xci/xci-daily-jobs.yml | 8 ++++++++ jjb/xci/xci-deploy.sh | 6 +++--- prototypes/xci/config/env-vars | 1 + prototypes/xci/playbooks/configure-opnfvhost.yml | 2 ++ prototypes/xci/var/opnfv.yml | 1 + 8 files changed, 24 insertions(+), 3 deletions(-) diff --git a/jjb/xci/bifrost-periodic-jobs.yml b/jjb/xci/bifrost-periodic-jobs.yml index 0c29fd3c9..3e9ff678e 100644 --- a/jjb/xci/bifrost-periodic-jobs.yml +++ b/jjb/xci/bifrost-periodic-jobs.yml @@ -122,6 +122,9 @@ - string: name: ANSIBLE_VERBOSITY default: '' + - string: + name: XCI_LOOP + default: 'periodic' wrappers: - fix-workspace-permissions diff --git a/jjb/xci/bifrost-verify-jobs.yml b/jjb/xci/bifrost-verify-jobs.yml index 80c816ca1..806829620 100644 --- a/jjb/xci/bifrost-verify-jobs.yml +++ b/jjb/xci/bifrost-verify-jobs.yml @@ -140,6 +140,9 @@ - string: name: ANSIBLE_VERBOSITY default: '-vvvv' + - string: + name: XCI_LOOP + default: 'verify' scm: - git: diff --git a/jjb/xci/osa-periodic-jobs.yml b/jjb/xci/osa-periodic-jobs.yml index 42b49411b..56a4b18b4 100644 --- a/jjb/xci/osa-periodic-jobs.yml +++ b/jjb/xci/osa-periodic-jobs.yml @@ -119,6 +119,9 @@ - string: name: ANSIBLE_VERBOSITY default: '' + - string: + name: XCI_LOOP + default: 'periodic' wrappers: - fix-workspace-permissions diff --git a/jjb/xci/xci-daily-jobs.yml b/jjb/xci/xci-daily-jobs.yml index 94bfafed0..64e13d3eb 100644 --- a/jjb/xci/xci-daily-jobs.yml +++ b/jjb/xci/xci-daily-jobs.yml @@ -109,6 +109,9 @@ - label: name: SLAVE_LABEL default: '{slave-label}' + - string: + name: XCI_LOOP + default: 'daily' triggers: - '{auto-trigger-name}' @@ -125,6 +128,7 @@ predefined-parameters: | DEPLOY_SCENARIO=$DEPLOY_SCENARIO XCI_FLAVOR=$XCI_FLAVOR + XCI_LOOP=$XCI_LOOP same-node: true block: true - trigger-builds: @@ -133,6 +137,7 @@ predefined-parameters: | DEPLOY_SCENARIO=$DEPLOY_SCENARIO XCI_FLAVOR=$XCI_FLAVOR + XCI_LOOP=$XCI_LOOP same-node: true block: true block-thresholds: @@ -205,6 +210,9 @@ - string: name: ANSIBLE_VERBOSITY default: '' + - string: + name: XCI_LOOP + default: 'daily' builders: - description-setter: diff --git a/jjb/xci/xci-deploy.sh b/jjb/xci/xci-deploy.sh index 33457b9f0..1ef4e8237 100755 --- a/jjb/xci/xci-deploy.sh +++ b/jjb/xci/xci-deploy.sh @@ -15,14 +15,14 @@ cd $WORKSPACE/prototypes/xci # for daily jobs, we want to use working versions # for periodic jobs, we will use whatever is set in the job, probably master -if [[ "$JOB_NAME" =~ "daily" ]]; then +if [[ "$XCI_LOOP" == "daily" ]]; then # source pinned-vars to get releng version source ./config/pinned-versions # checkout the version git checkout -q $OPNFV_RELENG_VERSION echo "Info: Using $OPNFV_RELENG_VERSION" -elif [[ "$JOB_NAME" =~ "periodic" ]]; then +elif [[ "$XCI_LOOP" == "periodic" ]]; then echo "Info: Using $OPNFV_RELENG_VERSION" fi @@ -31,7 +31,7 @@ fi # to take this into account while deploying anyways # clone openstack-ansible # stable/ocata already use pinned versions so this is only valid for master -if [[ "$JOB_NAME" =~ "periodic" && "$OPENSTACK_OSA_VERSION" == "master" ]]; then +if [[ "$XCI_LOOP" == "periodic" && "$OPENSTACK_OSA_VERSION" == "master" ]]; then cd $WORKSPACE # get the url to openstack-ansible git source ./config/env-vars diff --git a/prototypes/xci/config/env-vars b/prototypes/xci/config/env-vars index 052be2ace..cefb412a6 100755 --- a/prototypes/xci/config/env-vars +++ b/prototypes/xci/config/env-vars @@ -9,6 +9,7 @@ export OPENSTACK_OSA_ETC_PATH=/etc/openstack_deploy export CLEAN_DIB_IMAGES=false export OPNFV_HOST_IP=192.168.122.2 export XCI_FLAVOR_ANSIBLE_FILE_PATH=$OPNFV_RELENG_PATH/prototypes/xci/file/$XCI_FLAVOR +export CI_LOOP=${CI_LOOP:-daily} export JOB_NAME=${JOB_NAME:-false} # TODO: this currently matches to bifrost ansible version # there is perhaps better way to do this diff --git a/prototypes/xci/playbooks/configure-opnfvhost.yml b/prototypes/xci/playbooks/configure-opnfvhost.yml index 06e27e7fc..8c794c422 100644 --- a/prototypes/xci/playbooks/configure-opnfvhost.yml +++ b/prototypes/xci/playbooks/configure-opnfvhost.yml @@ -54,8 +54,10 @@ replace: '\1haproxy_state: enabled' - name: copy OPNFV OpenStack playbook shell: "/bin/cp -rf {{OPNFV_RELENG_PATH}}/prototypes/xci/file/setup-openstack.yml {{OPENSTACK_OSA_PATH}}/playbooks" + # Copy pinned role requirements if we are running as part of daily CI loop - name: copy OPNFV role requirements shell: "/bin/cp -rf {{OPNFV_RELENG_PATH}}/prototypes/xci/file/ansible-role-requirements.yml {{OPENSTACK_OSA_PATH}}" + when: XCI_LOOP == "daily" - hosts: localhost remote_user: root tasks: diff --git a/prototypes/xci/var/opnfv.yml b/prototypes/xci/var/opnfv.yml index dd3761bd1..12cb55675 100644 --- a/prototypes/xci/var/opnfv.yml +++ b/prototypes/xci/var/opnfv.yml @@ -20,5 +20,6 @@ OPENSTACK_OSA_ETC_PATH: "{{ lookup('env','OPENSTACK_OSA_ETC_PATH') }}" XCI_ANSIBLE_PIP_VERSION: "{{ lookup('env','XCI_ANSIBLE_PIP_VERSION') }}" XCI_FLAVOR: "{{ lookup('env','XCI_FLAVOR') }}" XCI_FLAVOR_ANSIBLE_FILE_PATH: "{{ lookup('env','XCI_FLAVOR_ANSIBLE_FILE_PATH') }}" +XCI_LOOP: "{{ lookup('env','XCI_LOOP') }}" LOG_PATH: "{{ lookup('env','LOG_PATH') }}" OPNFV_HOST_IP: "{{ lookup('env','OPNFV_HOST_IP') }}" -- cgit 1.2.3-korg