[yocto] [qa-tools][PATCH] Full-test-cycle-wrapper: Add support for point releases

jose.perez.carranza at linux.intel.com jose.perez.carranza at linux.intel.com
Tue May 16 11:46:28 PDT 2017


From: Jose Perez Carranza <jose.perez.carranza at linux.intel.com>

Add support to scenarios were a execution is needed for branch different
from master, delete lsb-joule environment as is not supported and add
logic to do the “Testopia connection” modular and reusable by other
scripts.

Signed-off-by: Jose Perez Carranza <jose.perez.carranza at linux.intel.com>
---
 scripts/full-test-cycle-wrapper.sh | 16 +++++++++++---
 testopia_update.py                 | 44 ++++++++++++++++++++++++--------------
 2 files changed, 41 insertions(+), 19 deletions(-)

diff --git a/scripts/full-test-cycle-wrapper.sh b/scripts/full-test-cycle-wrapper.sh
index 2b3a130..7dcd62e 100755
--- a/scripts/full-test-cycle-wrapper.sh
+++ b/scripts/full-test-cycle-wrapper.sh
@@ -51,6 +51,13 @@ create_test_run(){
       OPT="-o $2"
    fi
 
+#If point release is used then milestone is not asigned
+   if [[ $MILESTONE == M* ]]; then
+      BUILD_MILESTONE="$VERSION $MILESTONE"
+   else
+      BUILD_MILESTONE="$VERSION$MILESTONE"
+   fi
+
    #echo "############ CREATING TEST RUNS FOR - $1 - #############"
    for ENV in "${ENVIRONMENTS[@]}"
    do
@@ -61,7 +68,7 @@ create_test_run(){
      do
         #call the script that creates Test Runs
         ./testopia_update.py --config $CONFIG_FILE -a $ACTION -p "${1}" -c $EXTP -b $BRANCH \
-        -e "$ENV"  --project-version $VERSION --project-milestone "$VERSION $MILESTONE" \
+        -e "$ENV"  --project-version $VERSION --project-milestone "$BUILD_MILESTONE" \
         --project-date $PJDATE --project-revision $RELEASE-$REVISION $OPT $TEST_PLAN --verbose
      done
    done
@@ -119,7 +126,7 @@ create_meta-intel(){
    create_test_run "${1}" "core-image-sato-sdk_ANYBSP"
 
    #BSP Autos LSB
-   ENVIRONMENTS=("core2-32_lsb_MMAX32" "corei7-64_lsb_NUC" "corei7-64_lsb_MMAX64" "corei7-64_lsb_Joule" "corei7-64_lsb_CherryHill")
+   ENVIRONMENTS=("core2-32_lsb_MMAX32" "corei7-64_lsb_NUC" "corei7-64_lsb_MMAX64" "corei7-64_lsb_CherryHill")
 
    EXECUTION_TYPE="AUTO"
    create_test_run "${1}" "core-image-lsb-sdk_ANYBSP"
@@ -226,7 +233,9 @@ usage(){
   echo " -p PROJECT VERSION  {2.2 2.3 2.4}
                           Version of the project."
   echo " -m PROJECT MILESTONE {M1 M2 M3 M4}
-                          Milestone of the project."
+                          Milestone of the project.
+			  if is point release set milestone with .#
+		          .1 .2 .3"
   echo " -r RELEASE COMMIT {XXXXXX}
                           SCM Revision of the project, commit of branch tested."
   echo " -c RELEAE CANDIDATE {rc1 rc2 rcX}
@@ -236,6 +245,7 @@ usage(){
   exit
 }
 
+
 if [[ ( $# == "--help") ||  $# == "-h" || $# -eq 0 ]] ; then
     usage
     exit 0
diff --git a/testopia_update.py b/testopia_update.py
index 50c3325..0a3f7f5 100755
--- a/testopia_update.py
+++ b/testopia_update.py
@@ -14,7 +14,7 @@ DEFAULT_CONFIG_FILE = "testopia_update.config"
 DEFAULT_STORE_LOCATION = "/tmp/testopia_update"
 
 ACTIONS = ('create', 'update')
-BRANCHES = ('master', 'jethro', 'dizzy', 'daisy', 'noexists')
+BRANCHES = ('master', 'jethro', 'dizzy', 'daisy', 'noexists', "pyro")
 CATEGORIES = ('AUTO', 'MANUAL')
 
 
@@ -54,6 +54,31 @@ def load_opts(args, opts_list, opts):
                             'and --results-log if test run was already created')
             sys.exit(1)
 
+
+def connect_to_testopia():
+    config = None
+    opts = Options()
+
+    testopia_config = ['url', 'username', 'password', 'store_location']
+
+    if not args.config and os.path.exists(DEFAULT_CONFIG_FILE):
+        args.config = DEFAULT_CONFIG_FILE
+
+    if args.config:
+        config = ConfigParser.SafeConfigParser()
+        config.read(args.config)
+
+        for to in testopia_config:
+            setattr(opts, to, config.get("Testopia", to))
+
+    load_opts(args, testopia_config, opts)
+
+    if not os.path.exists(opts.store_location):
+        os.makedirs(opts.store_location)
+
+    return opts, config
+
+
 class Options(object):
     pass
 
@@ -132,25 +157,12 @@ if __name__ == '__main__':
         'project_version', 'project_milestone', 'project_revision',
         'project_date']
 
-    config = None
-    if not args.config and os.path.exists(DEFAULT_CONFIG_FILE):
-        args.config = DEFAULT_CONFIG_FILE
-
-    if args.config:
-        config = ConfigParser.SafeConfigParser()
-        config.read(args.config)
-
-        for to in testopia_config:
-            setattr(opts, to, config.get("Testopia", to))
-    load_opts(args, testopia_config, opts)
-
-    if not os.path.exists(opts.store_location):
-        os.makedirs(opts.store_location)
-
     kwargs = {}
     if args.plan_name:
         kwargs['plan_name'] = args.plan_name
 
+    opts, config = connect_to_testopia()
+
     testopia = Testopia(opts.username, opts.password, opts.url, sslverify=False)
     products = get_products(testopia, opts, logger, config, **kwargs)
 
-- 
2.11.0




More information about the yocto mailing list