Fix scenario verification jobs 14/1114/2
authorFatih Degirmenci <fdegir@gmail.com>
Tue, 7 May 2019 08:39:31 +0000 (10:39 +0200)
committerFatih Degirmenci <fdegir@gmail.com>
Tue, 7 May 2019 08:49:54 +0000 (10:49 +0200)
Change-Id: I9d99820cd1d3493fa24d23b2af061fb455afa280

jjb/cloud-infra/cloud-infra-macros.yaml
jjb/cloud-infra/cloud-infra-scenario-deploy.sh
jjb/cloud-infra/cloud-infra-scenario-test.sh
jjb/cloud-infra/cloud-infra-verify-scenario.yaml
jjb/cloud-infra/determine-scenario.sh [new file with mode: 0644]
jjb/cloud-infra/prepare-for-scenario-deploy.sh [moved from jjb/cloud-infra/prepare-for-scenario-verify.sh with 65% similarity]
jjb/cloud-infra/prepare-for-scenario-test.sh [new file with mode: 0644]

index 499c41aebec0a70680155dd7e7c6d977e7a6d172..a7185aef80f694e2c5b6b2131d96fac8c3d16348 100644 (file)
       - shell:
           !include-raw: ./cloud-infra-test.sh
 
+- builder:
+    name: 'cloud-infra-determine-scenario-macro'
+    builders:
+      - shell:
+          !include-raw: ./determine-scenario.sh
+      - inject:
+          properties-file: "$WORKSPACE/change.properties"
+      - description-setter:
+          description: "Installer: $INSTALLER_TYPE - Scenario: $DEPLOY_SCENARIO"
+
 - builder:
     name: 'cloud-infra-scenario-deploy-macro'
     builders:
       - shell:
           !include-raw: ./wait-for-pkg-manager.sh
+      - shell:
+          !include-raw: ./prepare-for-scenario-deploy.sh
       - shell:
           !include-raw: ./cloud-infra-scenario-deploy.sh
 
 - builder:
     name: 'cloud-infra-scenario-functest-macro'
     builders:
+      - shell:
+          !include-raw: ./prepare-for-scenario-test.sh
       - shell:
           !include-raw: ./cloud-infra-scenario-test.sh
+
 # vim: set ts=2 sw=2 expandtab:
index 978ab61f4060fdd018ef76e930e49c5ccea7d472..e81da3362960bc3c457ae4a9d44f36be1b61cbb8 100644 (file)
@@ -22,73 +22,6 @@ set -o errexit
 set -o nounset
 set -o pipefail
 
-# this function processes commit message to determine the impacted scenario
-# using the input provided by the committer.
-#
-# installer type and scenario should be placed at the beginning of lines
-# separately and the format of the entry in commit message is as below
-#
-# installer-type: <installer type>
-# deploy-scenario: <scenario name>
-#
-# example is
-#
-# installer-type: kubespray
-# deploy-scenario: k8-calico-nofeature
-function override_installer_scenario() {
-  echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC to determine the installer and the scenario"
-  cd $WORKSPACE
-  COMMIT_MESSAGE=$(git show -s --format=%B)
-
-  if [[ "$COMMIT_MESSAGE" =~ "deploy-scenario:" && "$COMMIT_MESSAGE" =~ "installer-type:" ]]; then
-    export INSTALLER_TYPE=$(echo "$COMMIT_MESSAGE" | grep '^installer-type:' | cut -d":" -f2 | sed 's/\s*//g')
-    export DEPLOY_SCENARIO=$(echo "$COMMIT_MESSAGE" | grep '^deploy-scenario:' | cut -d":" -f2 | sed 's/\s*//g')
-    generate_temporary_sdf
-  else
-    echo "Installer type or deploy scenario is not specified."
-    echo "Falling back to programmatically determining them."
-    determine_scenario
-  fi
-}
-
-# this function will process the changed files to determine the impacted scenario
-# if it is no specified by the committer. only one scenario per change should be
-# touched.
-# TODO: this is not implented yet.
-function determine_scenario() {
-  echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC"
-  cd $WORKSPACE
-  COMMIT_MESSAGE=$(git show -s --format=%B)
-  echo "Not implemented!"
-  exit 1
-}
-
-# this function generates temporary sdf file with the details of the impacted
-# scenario.
-function generate_temporary_sdf() {
-echo "Generating temporary SDF to use for verification"
-  cat << EOF > $WORKSPACE/sdf.yml
-scenario:
-  $DEPLOY_SCENARIO:
-    scm: git
-    src: $PROJECT_GIT_URL
-    version: $GERRIT_PATCHSET_REVISION
-    refspec: $GERRIT_REFSPEC
-    installers:
-      $INSTALLER_TYPE:
-        role: scenarios/$DEPLOY_SCENARIO/$INSTALLER_TYPE/role/$DEPLOY_SCENARIO
-        distros:
-          - ubuntu
-EOF
-}
-
-echo "Determining the impacted scenario"
-
-declare -a DEPLOY_SCENARIO
-
-override_installer_scenario
-generate_temporary_sdf
-
 # determine PDF
 if [[ $DEPLOY_TYPE == "baremetal" ]]; then
   PDF="https://gerrit.nordix.org/gitweb?p=infra/hwconfig.git;a=blob_plain;f=pods/${NODE_NAME}-pdf.yml"
@@ -100,8 +33,7 @@ fi
 
 # clone infra/engine repository
 echo "Deploying scenario $DEPLOY_SCENARIO using $INSTALLER_TYPE"
-cd $WORKSPACE && git clone -q $ENGINE_REPO_URL
-cd engine
-./engine/deploy.sh -d kubespray -s $DEPLOY_SCENARIO -p $PDF -i $IDF -b $WORKSPACE/sdf.yml -c
+cd $WORKSPACE
+./engine/deploy.sh -d $INSTALLER_TYPE -s $DEPLOY_SCENARIO -p $PDF -i $IDF -b $WORKSPACE/sdf.yml -c
 
 # vim: set ts=2 sw=2 expandtab:
index 755ad730c9a99fa994fa7d9692b624cea8236f2a..e1b92d17d28af16ad038cdf6bcc420d8a8e9da99 100644 (file)
@@ -26,77 +26,9 @@ set -o errexit
 set -o nounset
 set -o pipefail
 
-# this function processes commit message to determine the impacted scenario
-# using the input provided by the committer.
-#
-# installer type and scenario should be placed at the beginning of lines
-# separately and the format of the entry in commit message is as below
-#
-# installer-type: <installer type>
-# deploy-scenario: <scenario name>
-#
-# example is
-#
-# installer-type: kubespray
-# deploy-scenario: k8-calico-nofeature
-function override_installer_scenario() {
-  echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC to determine the installer and the scenario"
-  cd $WORKSPACE
-  COMMIT_MESSAGE=$(git show -s --format=%B)
-
-  if [[ "$COMMIT_MESSAGE" =~ "deploy-scenario:" && "$COMMIT_MESSAGE" =~ "installer-type:" ]]; then
-    export INSTALLER_TYPE=$(echo "$COMMIT_MESSAGE" | grep '^installer-type:' | cut -d":" -f2 | sed 's/\s*//g')
-    export DEPLOY_SCENARIO=$(echo "$COMMIT_MESSAGE" | grep '^deploy-scenario:' | cut -d":" -f2 | sed 's/\s*//g')
-    generate_temporary_sdf
-  else
-    echo "Installer type or deploy scenario is not specified."
-    echo "Falling back to programmatically determining them."
-    determine_scenario
-  fi
-}
-
-# this function will process the changed files to determine the impacted scenario
-# if it is no specified by the committer. only one scenario per change should be
-# touched.
-# TODO: this is not implented yet.
-function determine_scenario() {
-  echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC"
-  cd $WORKSPACE
-  COMMIT_MESSAGE=$(git show -s --format=%B)
-  echo "Not implemented!"
-  exit 1
-}
-
-# this function generates temporary sdf file with the details of the impacted
-# scenario.
-function generate_temporary_sdf() {
-echo "Generating temporary SDF to use for verification"
-  cat << EOF > $WORKSPACE/sdf.yml
-scenario:
-  $DEPLOY_SCENARIO:
-    scm: git
-    src: $PROJECT_GIT_URL
-    version: $GERRIT_PATCHSET_REVISION
-    refspec: $GERRIT_REFSPEC
-    installers:
-      $INSTALLER_TYPE:
-        role: scenarios/$DEPLOY_SCENARIO/$INSTALLER_TYPE/role/$DEPLOY_SCENARIO
-        distros:
-          - ubuntu
-EOF
-}
-
-echo "Determining the impacted scenario"
-
-declare -a DEPLOY_SCENARIO
-
-override_installer_scenario
-generate_temporary_sdf
-
 # execute cloud engine test.sh script with arguments
 echo "Testing scenario $DEPLOY_SCENARIO deployed using $INSTALLER_TYPE"
-cd $WORKSPACE && git clone -q $TEST_REPO_URL
-cd test
+cd $WORKSPACE
 ./test/test.sh -c -f $TEST_FW -t $TEST_SUITE -s $DEPLOY_SCENARIO
 
 # vim: set ts=2 sw=2 expandtab:
index 0d4157061ccae4f2dda719dc56174846bf6d492b..14894ec1bf4943fba5dbb67a439019ef98b65e11 100644 (file)
           files: '**'
 
     builders:
+      - 'cloud-infra-determine-scenario-macro'
       - multijob:
           name: deploy
           condition: SUCCESSFUL
           refspec: $GERRIT_REFSPEC
 
     builders:
+      - 'cloud-infra-determine-scenario-macro'
       - 'cloud-infra-scenario-{phase}-macro'
 
 # vim: set ts=2 sw=2 expandtab:
diff --git a/jjb/cloud-infra/determine-scenario.sh b/jjb/cloud-infra/determine-scenario.sh
new file mode 100644 (file)
index 0000000..e9d7649
--- /dev/null
@@ -0,0 +1,75 @@
+#!/bin/bash
+
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 The Nordix Foundation. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+set -o errexit
+set -o nounset
+set -o pipefail
+
+# this function processes commit message to determine the impacted scenario
+# using the input provided by the committer.
+#
+# installer type and scenario should be placed at the beginning of lines
+# separately and the format of the entry in commit message is as below
+#
+# installer-type: <installer type>
+# deploy-scenario: <scenario name>
+#
+# example is
+#
+# installer-type: kubespray
+# deploy-scenario: k8-calico-nofeature
+function override_installer_scenario() {
+  echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC to determine the installer and the scenario"
+  cd $WORKSPACE
+  COMMIT_MESSAGE=$(git show -s --format=%B)
+
+  if [[ "$COMMIT_MESSAGE" =~ "deploy-scenario:" && "$COMMIT_MESSAGE" =~ "installer-type:" ]]; then
+    export INSTALLER_TYPE=$(echo "$COMMIT_MESSAGE" | grep '^installer-type:' | cut -d":" -f2 | sed 's/\s*//g')
+    export DEPLOY_SCENARIO=$(echo "$COMMIT_MESSAGE" | grep '^deploy-scenario:' | cut -d":" -f2 | sed 's/\s*//g')
+  else
+    echo "Installer type or deploy scenario is not specified."
+    echo "Falling back to programmatically determining them."
+    determine_scenario
+  fi
+}
+
+# this function will process the changed files to determine the impacted scenario
+# if it is no specified by the committer. only one scenario per change should be
+# touched.
+# TODO: this is not implented yet.
+function determine_scenario() {
+  echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC"
+  cd $WORKSPACE
+  COMMIT_MESSAGE=$(git show -s --format=%B)
+  echo "Not implemented!"
+  exit 1
+}
+
+echo "Determining the impacted scenario and used installer"
+
+declare -a DEPLOY_SCENARIO
+declare -a INSTALLER_TYPE
+export PROJECT_GIT_URL=$GIT_BASE_HTTPS/$GERRIT_PROJECT
+
+override_installer_scenario
+
+echo "Writing change metadata to $WORKSPACE/change.properties"
+
+# vim: set ts=2 sw=2 expandtab:
similarity index 65%
rename from jjb/cloud-infra/prepare-for-scenario-verify.sh
rename to jjb/cloud-infra/prepare-for-scenario-deploy.sh
index f654dc842a2ff571d0facfc3ddc35e14ae6dad92..16a823b34b3f59d8d0dbf5a3899a536a7a50b949 100644 (file)
@@ -25,4 +25,23 @@ echo "Info: Cloning infra/engine repository"
 cd $HOME && /bin/rm -rf $WORKSPACE
 git clone -q $ENGINE_REPO_URL $WORKSPACE
 
+echo "Generating temporary SDF"
+cat << EOF > $WORKSPACE/sdf.yml
+scenario:
+  $DEPLOY_SCENARIO:
+    scm: git
+    src: $PROJECT_GIT_URL
+    version: $GERRIT_PATCHSET_REVISION
+    refspec: $GERRIT_REFSPEC
+    installers:
+      $INSTALLER_TYPE:
+        role: scenarios/$DEPLOY_SCENARIO/$INSTALLER_TYPE/role/$DEPLOY_SCENARIO
+        distros:
+          - ubuntu
+EOF
+echo "Temporary SDF content"
+echo "-------------------------------------------------------------------------"
+cat $WORKSPACE/sdf.yml
+echo "-------------------------------------------------------------------------"
+
 # vim: set ts=2 sw=2 expandtab:
diff --git a/jjb/cloud-infra/prepare-for-scenario-test.sh b/jjb/cloud-infra/prepare-for-scenario-test.sh
new file mode 100644 (file)
index 0000000..eae6b51
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 The Nordix Foundation. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+set -o errexit
+set -o nounset
+
+echo "Info: Cloning infra/test repository"
+cd $HOME && /bin/rm -rf $WORKSPACE
+git clone -q $TEST_REPO_URL $WORKSPACE
+
+echo "Generating temporary SDF"
+cat << EOF > $WORKSPACE/sdf.yml
+scenario:
+  $DEPLOY_SCENARIO:
+    scm: git
+    src: $PROJECT_GIT_URL
+    version: $GERRIT_PATCHSET_REVISION
+    refspec: $GERRIT_REFSPEC
+    installers:
+      $INSTALLER_TYPE:
+        role: scenarios/$DEPLOY_SCENARIO/$INSTALLER_TYPE/role/$DEPLOY_SCENARIO
+        distros:
+          - ubuntu
+EOF
+echo "Temporary SDF content"
+echo "-------------------------------------------------------------------------"
+cat $WORKSPACE/sdf.yml
+echo "-------------------------------------------------------------------------"
+
+# vim: set ts=2 sw=2 expandtab: