· 5 years ago · Jan 18, 2020, 03:36 AM
1use diagnostics;
2use ElectricCommander;
3my $ec = new ElectricCommander();
4
5my $componentNames = $ec->getProperty("/myCall/componentNames")->findnodes("//value")->string_value();
6print "componentNames : " . $componentNames. "\n";
7
8my $env = $ec->getProperty("/myProject/envVariables")->findnodes("//value")->string_value();
9my $workDir = $ec->getProperty("/myParent/workDir")->findnodes("//value")->string_value();
10my $region = $ec->getProperty("/myParent/region")->findnodes("//value")->string_value();
11my $excludeParser = $ec->getProperty("/myParent/excludeParser")->findnodes("//value")->string_value();
12my $searchQualityVersion = $ec->getProperty("/myParent/searchQualityVersion")->findnodes("//value")->string_value();
13if(uc($searchQualityVersion) !~ /-SNAPSHOT$/) {
14 print "Input SearchQualityVersion : ".$searchQualityVersion."\n";
15 $searchQualityVersion = $searchQualityVersion."-SNAPSHOT";
16 print "Output SearchQualityVersion : ".$searchQualityVersion."\n";
17} else {
18 $idx = rindex($searchQualityVersion,"-");
19 $searchQualityVersion = substr($searchQualityVersion, 0, $idx)."-SNAPSHOT";
20}
21
22my $datasource = $ec->getProperty("/myParent/datasource")->findnodes("//value")->string_value();
23
24my $embeddedVersion = $ec->getProperty("/myParent/embeddedVersion")->findnodes("//value")->string_value();
25if (($embeddedVersion ne "") && ($datasource eq "onboard")) {
26 if(uc($embeddedVersion) !~ /-SNAPSHOT$/) {
27 print "Input EmbeddedVersion : ".$embeddedVersion."\n";
28 $embeddedVersion = $embeddedVersion."-SNAPSHOT";
29 print "Output EmbeddedVersion : ".$embeddedVersion."\n";
30 } else {
31 $idx2 = rindex($embeddedVersion,"-");
32 $embeddedVersion = substr($embeddedVersion, 0, $idx2)."-SNAPSHOT";
33 }
34} else {
35 # default embedded version
36 $embeddedVersion = "1.0.76.13-SNAPSHOT";
37}
38
39my $replayjobid = $ec->getProperty("/myJob/replayJobID")->findnodes("//value")->string_value();
40my $testdatajobidlist = $ec->getProperty("/myJob/testDataJobIDList")->findnodes("//value")->string_value();
41my $countryList = $ec->getProperty("/myJob/countryList")->findnodes("//value")->string_value();
42my $patternList = $ec->getProperty("/myJob/patternList")->findnodes("//value")->string_value();
43my $label = $ec->getProperty("/myParent/label")->findnodes("//value")->string_value();
44my $buildType = $ec->getProperty("/myParent/buildType")->findnodes("//value")->string_value();
45my $patternPriority = $ec->getProperty("/myParent/patternPriority")->findnodes("//value")->string_value();
46
47
48
49my $environment = $ec->getProperty("/myParent/environment")->findnodes("//value")->string_value();
50my $endpoint = $ec->getProperty("/myParent/endpoint")->findnodes("//value")->string_value();
51my $apikey = $ec->getProperty("/myParent/apikey")->findnodes("//value")->string_value();
52my $secretkey = $ec->getProperty("/myParent/secretkey")->findnodes("//value")->string_value();
53
54my $testTarget = "";
55my $baseversion = $ec->getProperty("/myProject/branchProperties/$[/myParent/svnBranchName]/componentVersion")->findnodes("//value")->string_value();
56
57my $local_data_path = "";
58my $data_link = "";
59if ($datasource eq "onboard") {
60 $local_data_path = $ec->getProperty("/myJob/local_data_path/$region/path")->findnodes("//value")->string_value();
61 $data_link = $ec->getProperty("/myJob/index_path/$region/path")->findnodes("//value")->string_value();
62}
63print "Index Path: $local_data_path\n";
64print "Index Link: $data_link\n";
65
66my $properties = "unittest.build.region=$[/myParent/region];unittest.build.binary.version=$embeddedVersion;unittest.build.quarter=;unittest.build.label='$label';unittest.build.limitperpattern=$[/myParent/limitperpattern];unittest.build.product='$[/myParent/currentProduct]';unittest.index.path=$local_data_path;unittest.build.faraway=$[/myParent/faraway];suite=$[/myParent/suiteNames];unittest.ecjobid=$[/myJob/jobName]_$[/myCall/product];excludeParser=$excludeParser;replayjobid=$replayjobid;testdatajobidlist=$testdatajobidlist;unittest.build.search.quality.binary.version=$searchQualityVersion;unittest.build.countryList=$countryList;unittest.build.patternList=$patternList;build.env=$buildType;unittest.index.link=$data_link;patternPriority='$patternPriority';datasource=$datasource;environment=$environment;endpoint=$endpoint;apikey=$apikey;secretkey=$secretkey";
67
68my $resourceName = '$[/myResource/resourceName]';
69my $sourceProject = '$[/myProject/projectName]';
70my $jobID = '$[jobId]';
71
72#Create a new procedure
73my $procedureName = "VarStep_UnitTest_SelectedComponent_${jobID}_$region";
74$ec->createProcedure("$sourceProject", "$procedureName", { resourceName => "$resourceName" });
75
76# Store off the procedure name
77$ec->setProperty("/myParent/runUnitTestSelectedComponents", "$procedureName");
78
79# Read component name from array
80my @componentsArray = split(/,/,$componentNames);
81
82$index =1;
83foreach my $componentName (@componentsArray)
84{
85 print "componentName is:".$componentName."\n";
86 if(index($componentName, "address")!=-1){
87 $testTarget = "address";
88 #$properties = $properties . ";unittest.build.address=true"
89 }
90 if(index($componentName, "poi")!=-1){
91 $testTarget = "place";
92 #$properties = $properties . ";unittest.build.place=true"
93 }
94 if(index($componentName, "autosuggest")!=-1){
95 $testTarget = "autosuggest";
96 #$properties = $properties . ";unittest.build.autosuggest=true"
97 }
98 if(index($componentName, "wordsuggest")!=-1){
99 $testTarget = "wordsuggest";
100 #$properties = $properties . ";unittest.build.wordsuggest=true"
101 }
102 if(index($componentName, "rgc")!=-1){
103 $testTarget = "rgc";
104 #$properties = $properties . ";unittest.build.rgc=true"
105 }
106 $response = $ec->createStep("$sourceProject", "$procedureName", "Run_SearchQuality_".$componentName,{
107 subprocedure => "runAnt",
108 subproject => "$[/server/antPluginVersion]",
109 parallel => "1",
110 actualParameter => [
111 {actualParameterName => "workingdirectory", value => $workDir . "/" . $componentName . "/Build"},
112 {actualParameterName => "target", value => $testTarget},
113 {actualParameterName => "buildfile", value => "build.xml"},
114 {actualParameterName => "props", value => $properties},
115 {actualParameterName => "additionalcommands", value => "-nouserlib"},
116 {actualParameterName => "envVariables", value => $env}
117 ]});
118 $index++;
119
120}