diff --git a/jenkins/opensearch-dashboards/integ-test.jenkinsfile b/jenkins/opensearch-dashboards/integ-test.jenkinsfile index b9f928bb42..f2be1c97f8 100644 --- a/jenkins/opensearch-dashboards/integ-test.jenkinsfile +++ b/jenkins/opensearch-dashboards/integ-test.jenkinsfile @@ -22,7 +22,7 @@ def agent_nodes = [ pipeline { options { - timeout(time: 4, unit: 'HOURS') + timeout(time: 3, unit: 'HOURS') } agent none environment { @@ -33,6 +33,11 @@ pipeline { ARTIFACT_BUCKET_NAME = credentials('jenkins-artifact-bucket-name') } parameters { + string( + name: 'COMPONENT_NAME', + description: 'If this field contains one or more component names (e.g. notificationsDashboards indexManagementDashboards ...) separated by space, will test with "--component ...", else test everything in the TEST_MANIFEST..', + trim: true + ) string( name: 'TEST_MANIFEST', description: 'Test manifest under the manifests folder, e.g. 2.0.0/opensearch-dashboards-2.0.0-test.yml.', @@ -40,7 +45,7 @@ pipeline { ) string( name: 'BUILD_MANIFEST_URL', - description: 'The build manifest URL, e.g. https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/2.5.0/5367/linux/x64/tar/builds/opensearch-dashboards/manifest.yml', + description: 'The build manifest URL OpenSearch Dashboards, e.g. "https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/2.5.0/5367/linux/x64/tar/builds/opensearch-dashboards/manifest.yml".', trim: true ) string( @@ -51,7 +56,7 @@ pipeline { } stages { stage('verify-parameters') { - agent { label agent_nodes["x64"] } + agent { label agent_nodes["x64"]} steps { script { if (TEST_MANIFEST == '' || !fileExists("manifests/${TEST_MANIFEST}")) { @@ -64,11 +69,6 @@ pipeline { error("Integration Tests failed to start. Build manifest url was not provided.") } - if (BUILD_MANIFEST_URL_OPENSEARCH == '') { - currentBuild.result = 'ABORTED' - error("Integration Tests failed to start. Build manifest url OpenSearch was not provided.") - } - downloadBuildManifest( url: BUILD_MANIFEST_URL, path: BUILD_MANIFEST @@ -98,29 +98,38 @@ pipeline { currentBuild.result = 'ABORTED' error("OSD Version $version does not match OS Version $versionOpenSearch") } - } } - } - stage('integ-test') { - agent { - docker { - label AGENT_LABEL - image docker_images["$distribution"] - args docker_args["$distribution"] - registryUrl 'https://public.ecr.aws/' - alwaysPull true + post { + always { + postCleanup() } } + } + stage('integ-test') { + // Required running on agent directly here to trigger docker stages in agent node, not trigger docker within docker container + // Can only be run in runner that is at least 50GB per container + agent { label AGENT_LABEL } steps { script { - def buildManifestObj = downloadBuildManifest( + + downloadBuildManifest( url: BUILD_MANIFEST_URL, path: BUILD_MANIFEST ) + def buildManifestObj = lib.jenkins.BuildManifest.new(readYaml(file: BUILD_MANIFEST)) + def componentDefaultList = buildManifestObj.getNames() + def componentList = COMPONENT_NAME ? COMPONENT_NAME.trim().split(" ") as List : componentDefaultList String switch_user_non_root = (distribution.equals('rpm') || distribution.equals('deb')) ? 'true' : 'false' echo "switch_user_non_root: ${switch_user_non_root}" + echo "componentList: ${componentList}" + + for (component_check in componentList) { + if (! componentDefaultList.contains(component_check)) { + error("${component_check} is not in build manifest: ${componentDefaultList}, exit 1") + } + } echo "Downloading from S3: ${artifactPathOpenSearch}" downloadFromS3( @@ -144,24 +153,68 @@ pipeline { ) sh("cp -a $WORKSPACE/artifacts/${artifactPath} $WORKSPACE") - runIntegTestScript( - jobName: "$BUILD_JOB_NAME", - componentName: 'functionalTestDashboards', - buildManifest: "$BUILD_MANIFEST", - testManifest: "manifests/${TEST_MANIFEST}", - localPath: "${WORKSPACE}/${distribution}", - switchUserNonRoot: "${switch_user_non_root}" - ) + // Stash the current working directory files, aka opensearch-build repo + // Unstash later in each triggered stage to run integTest + stash includes: "**", name: "integtest-opensearch-dashboards-$BUILD_NUMBER" + + componentTests = [:] + + for (component in componentList) { + // Must use local variable due to groovy for loop and closure scope + // Or the stage will be fixed to the last item in return when new stages are triggered here + // https://web.archive.org/web/20181121065904/http://blog.freeside.co/2013/03/29/groovy-gotcha-for-loops-and-closure-scope/ + def local_component = component.trim() + def local_component_index = componentList.indexOf(local_component) + def wait_seconds = local_component_index * 10 + + echo "Add Component: ${local_component}" + componentTests["Run Integtest ${local_component}"] = { + // Using scripted pipelines to trigger dynamic parallel stages + timeout(time: 2, unit: 'HOURS') { + node(AGENT_LABEL) { + docker.withRegistry('https://public.ecr.aws/') { + docker.image(docker_images["$distribution"]).inside(docker_args["$distribution"]) { + try { + stage("Run Integtest ${local_component}") { + echo "Component Name: ${local_component}" + // Jenkins tend to not clean up workspace at times even though ws clean is called + // Due to docker is mounting the agent directory so it can communicated with the agent + // This sometimes causes the workspace to retain last run test-results and ends with build failures + // https://github.com/opensearch-project/opensearch-build/blob/6ed1ce3c583233eae4fe1027969d778cfc7660f7/src/test_workflow/test_recorder/test_recorder.py#L99 + sh("echo ${local_component} with index ${local_component_index} will sleep ${wait_seconds} seconds to reduce load && sleep ${wait_seconds}") + unstash "integtest-opensearch-dashboards-$BUILD_NUMBER" + sh("rm -rf test-results") + runIntegTestScript( + jobName: "$BUILD_JOB_NAME", + componentName: "${local_component}", + buildManifest: "$BUILD_MANIFEST", + testManifest: "manifests/${TEST_MANIFEST}", + localPath: "${WORKSPACE}/${distribution}", + switchUserNonRoot: "${switch_user_non_root}" + ) + } + } catch (e) { + echo "Error running integtest for component ${local_component}" + throw e + } finally { + echo "Completed running integtest for component ${local_component}" + uploadTestResults( + buildManifestFileName: BUILD_MANIFEST, + jobName: JOB_NAME + ) + postCleanup() + } + } + } + } + } + } + } + parallel componentTests } } post { always { - script { - uploadTestResults( - buildManifestFileName: BUILD_MANIFEST, - jobName: JOB_NAME - ) - } postCleanup() } } diff --git a/jenkins/opensearch-dashboards/integ-test2.jenkinsfile b/jenkins/opensearch-dashboards/integ-test2.jenkinsfile deleted file mode 100644 index ca100321f6..0000000000 --- a/jenkins/opensearch-dashboards/integ-test2.jenkinsfile +++ /dev/null @@ -1,263 +0,0 @@ -lib = library(identifier: 'jenkins@2.1.0', retriever: modernSCM([ - $class: 'GitSCMSource', - remote: 'https://github.com/opensearch-project/opensearch-build-libraries.git', -])) - -def docker_images = [ - "tar": "opensearchstaging/ci-runner:ci-runner-centos7-opensearch-build-v2", - "rpm": "opensearchstaging/ci-runner:ci-runner-rockylinux8-systemd-base-integtest-v1", - "deb": "opensearchstaging/ci-runner:ci-runner-ubuntu2004-systemd-base-integtest-v1", -] - -def docker_args = [ - "tar": "-u 1000", - "rpm": "--entrypoint=/usr/sbin/init -u root --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro", - "deb": "--entrypoint=/usr/sbin/init -u root --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro", -] - -def agent_nodes = [ - "x64": "Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host", - "arm64": "Jenkins-Agent-AL2-Arm64-C6g4xlarge-Docker-Host", -] - -pipeline { - options { - timeout(time: 3, unit: 'HOURS') - } - agent none - environment { - BUILD_MANIFEST = "build-manifest.yml" - BUILD_MANIFEST_OPENSEARCH = "build-manifest-opensearch.yml" - BUILD_JOB_NAME = "distribution-build-opensearch" - BUILD_JOB_NAME_OPENSEARCH = "distribution-build-opensearch" - ARTIFACT_BUCKET_NAME = credentials('jenkins-artifact-bucket-name') - } - parameters { - string( - name: 'COMPONENT_NAME', - description: 'If this field contains one or more component names (e.g. index-management geospatial ...) separated by space, will test with "--component ...", else test everything in the TEST_MANIFEST..', - trim: true - ) - string( - name: 'TEST_MANIFEST', - description: 'Test manifest under the manifests folder, e.g. 2.0.0/opensearch-2.0.0-test.yml.', - trim: true - ) - string( - name: 'BUILD_MANIFEST_URL', - description: 'The build manifest URL, e.g. "https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/2.5.0/6976/linux/x64/tar/builds/opensearch/manifest.yml".', - trim: true - ) - string( - name: 'BUILD_MANIFEST_URL_OPENSEARCH', - description: 'The build manifest URL OpenSearch, e.g. "https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/2.5.0/6976/linux/x64/tar/builds/opensearch/manifest.yml".', - trim: true - ) - } - stages { - stage('verify-parameters') { - agent { label agent_nodes["x64"]} - steps { - script { - if (TEST_MANIFEST == '' || !fileExists("manifests/${TEST_MANIFEST}")) { - currentBuild.result = 'ABORTED' - error("Integration Tests failed to start. Test manifest was not provided or not found in manifests/${TEST_MANIFEST}.") - } - - if (BUILD_MANIFEST_URL == '') { - currentBuild.result = 'ABORTED' - error("Integration Tests failed to start. Build manifest url was not provided.") - } - - downloadBuildManifest( - url: BUILD_MANIFEST_URL, - path: BUILD_MANIFEST - ) - - downloadBuildManifest( - url: BUILD_MANIFEST_URL_OPENSEARCH, - path: BUILD_MANIFEST_OPENSEARCH - ) - - def buildManifestObj = lib.jenkins.BuildManifest.new(readYaml(file: BUILD_MANIFEST)) - def buildManifestObjOpenSearch = lib.jenkins.BuildManifest.new(readYaml(file: BUILD_MANIFEST_OPENSEARCH)) - env.architecture = buildManifestObj.getArtifactArchitecture() - env.buildId = buildManifestObj.getArtifactBuildId() - env.buildIdOpenSearch = buildManifestObjOpenSearch.getArtifactBuildId() - env.distribution = buildManifestObj.getDistribution() - env.version = buildManifestObj.build.version - env.versionOpenSearch = buildManifestObjOpenSearch.build.version - env.artifactPath = buildManifestObj.getArtifactRoot(BUILD_JOB_NAME, buildId) - env.artifactPathOpenSearch = buildManifestObjOpenSearch.getArtifactRoot(BUILD_JOB_NAME_OPENSEARCH, buildIdOpenSearch) - env.AGENT_LABEL = agent_nodes["$architecture"] - - echo "Version: ${version}, VersionOpenSearch: ${env.versionOpenSearch}, Agent: ${AGENT_LABEL}, OSD_BuildId: ${buildId}, OS_BuildId: ${buildIdOpenSearch}, Distribution: ${distribution}" - currentBuild.description = "$architecture, osd-$version-$buildId, os-$versionOpenSearch-$buildIdOpenSearch, $distribution" - - if (! env.version.equals(env.versionOpenSearch)) { - currentBuild.result = 'ABORTED' - error("OSD Version $version does not match OS Version $versionOpenSearch") - } - } - post { - always { - postCleanup() - } - } - } - stage('integ-test') { - // Required running on agent directly here to trigger docker stages in agent node, not trigger docker within docker container - // Can only be run in runner that is at least 50GB per container - agent { label AGENT_LABEL } - steps { - script { - - downloadBuildManifest( - url: BUILD_MANIFEST_URL, - path: BUILD_MANIFEST - ) - - downloadBuildManifest( - url: BUILD_MANIFEST_URL_OPENSEARCH, - path: BUILD_MANIFEST_OPENSEARCH - ) - - def buildManifestObj = lib.jenkins.BuildManifest.new(readYaml(file: BUILD_MANIFEST)) - def buildManifestObjOpenSearch = lib.jenkins.BuildManifest.new(readYaml(file: BUILD_MANIFEST_OPENSEARCH)) - def componentDefaultList = buildManifestObj.getNames() - def componentList = COMPONENT_NAME ? COMPONENT_NAME.trim().split(" ") as List : componentDefaultList - String switch_user_non_root = (distribution.equals('rpm') || distribution.equals('deb')) ? 'true' : 'false' - echo "switch_user_non_root: ${switch_user_non_root}" - echo "componentList: ${componentList}" - - for (component_check in componentList) { - if (! componentDefaultList.contains(component_check)) { - error("${component_check} is not in build manifest: ${componentDefaultList}, exit 1") - } - } - - echo "Downloading from S3: ${artifactPathOpenSearch}" - downloadFromS3( - assumedRoleName: 'opensearch-bundle', - roleAccountNumberCred: 'jenkins-aws-account-public', - downloadPath: "${artifactPathOpenSearch}/", - bucketName: "${ARTIFACT_BUCKET_NAME}", - localPath: "${WORKSPACE}/artifacts", - force: true - ) - sh("cp -a $WORKSPACE/artifacts/${artifactPathOpenSearch} $WORKSPACE") - - echo "Downloading from S3: ${artifactPath}" - downloadFromS3( - assumedRoleName: 'opensearch-bundle', - roleAccountNumberCred: 'jenkins-aws-account-public', - downloadPath: "${artifactPath}/", - bucketName: "${ARTIFACT_BUCKET_NAME}", - localPath: "${WORKSPACE}/artifacts", - force: true - ) - sh("cp -a $WORKSPACE/artifacts/${artifactPath} $WORKSPACE") - - // Stash the current working directory files, aka opensearch-build repo - // Unstash later in each triggered stage to run integTest - stash includes: "**", name: "integtest-opensearch-$BUILD_NUMBER" - - componentTests = [:] - - for (component in componentList) { - // Must use local variable due to groovy for loop and closure scope - // Or the stage will be fixed to the last item in return when new stages are triggered here - // https://web.archive.org/web/20181121065904/http://blog.freeside.co/2013/03/29/groovy-gotcha-for-loops-and-closure-scope/ - def local_component = component.trim() - def local_component_index = componentList.indexOf(local_component) - def wait_seconds = local_component_index * 10 - - echo "Add Component: ${local_component}" - componentTests["Run Integtest ${local_component}"] = { - // Using scripted pipelines to trigger dynamic parallel stages - timeout(time: 2, unit: 'HOURS') { - node(AGENT_LABEL) { - docker.withRegistry('https://public.ecr.aws/') { - docker.image(docker_images["$distribution"]).inside(docker_args["$distribution"]) { - try { - stage("Run Integtest ${local_component}") { - echo "Component Name: ${local_component}" - // Jenkins tend to not clean up workspace at times even though ws clean is called - // Due to docker is mounting the agent directory so it can communicated with the agent - // This sometimes causes the workspace to retain last run test-results and ends with build failures - // https://github.com/opensearch-project/opensearch-build/blob/6ed1ce3c583233eae4fe1027969d778cfc7660f7/src/test_workflow/test_recorder/test_recorder.py#L99 - sh("echo ${local_component} with index ${local_component_index} will sleep ${wait_seconds} seconds to reduce load && sleep ${wait_seconds}") - unstash "integtest-opensearch-$BUILD_NUMBER" - sh("rm -rf test-results") - runIntegTestScript( - jobName: "$BUILD_JOB_NAME", - componentName: 'functionalTestDashboards', - buildManifest: "$BUILD_MANIFEST", - testManifest: "manifests/${TEST_MANIFEST}", - localPath: "${WORKSPACE}/${distribution}", - switchUserNonRoot: "${switch_user_non_root}" - ) - } - } catch (e) { - echo "Error running integtest for component ${local_component}" - throw e - } finally { - echo "Completed running integtest for component ${local_component}" - uploadTestResults( - buildManifestFileName: BUILD_MANIFEST, - jobName: JOB_NAME - ) - postCleanup() - } - } - } - } - } - } - } - parallel componentTests - } - } - post { - always { - postCleanup() - } - } - } - } - - post { - success { - node(AGENT_LABEL) { - script { - def stashed = lib.jenkins.Messages.new(this).get(['integ-test']) - publishNotification( - icon: ':white_check_mark:', - message: 'Integration Tests Successful', - extra: stashed, - credentialsId: 'jenkins-integ-test-webhook', - manifest: TEST_MANIFEST, - ) - - postCleanup() - } - } - } - failure { - node(AGENT_LABEL) { - script { - def stashed = lib.jenkins.Messages.new(this).get(['integ-test']) - publishNotification( - icon: ':warning:', - message: 'Failed Integration Tests', - extra: stashed, - credentialsId: 'jenkins-integ-test-webhook', - manifest: TEST_MANIFEST, - ) - - postCleanup() - } - } - } - } -} diff --git a/tests/jenkins/TestOpenSearchDashboardsIntegTest.groovy b/tests/jenkins/TestOpenSearchDashboardsIntegTest.groovy index 82b3809286..7244dff724 100644 --- a/tests/jenkins/TestOpenSearchDashboardsIntegTest.groovy +++ b/tests/jenkins/TestOpenSearchDashboardsIntegTest.groovy @@ -9,7 +9,12 @@ import org.junit.Before import org.junit.Test import org.yaml.snakeyaml.Yaml import static com.lesfurets.jenkins.unit.global.lib.LibraryConfiguration.library +import static com.lesfurets.jenkins.unit.MethodCall.callArgsToString import static com.lesfurets.jenkins.unit.global.lib.GitSource.gitSource +import static org.hamcrest.CoreMatchers.hasItem +import static org.hamcrest.CoreMatchers.hasItems +import static org.hamcrest.MatcherAssert.assertThat +import static org.junit.jupiter.api.Assertions.assertThrows class TestOpenSearchDashboardsIntegTest extends BuildPipelineTest { @@ -32,8 +37,9 @@ class TestOpenSearchDashboardsIntegTest extends BuildPipelineTest { def testManifest = "tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml" def buildId = 215 def buildManifest = "tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml" - def buildManifestUrl = "https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/${buildId}/linux/x64/tar/dist/opensearch-dashboards/opensearch-dashboards-1.2.0-linux-x64.tar.gz" + def buildManifestUrl = "https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/${buildId}/linux/x64/tar/builds/opensearch-dashboards/opensearch-dashboards-1.2.0-linux-x64.tar.gz" def agentLabel = "Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host" + def bucketName = 'job-s3-bucket-name' binding.setVariable('env', ['BUILD_NUMBER': '215']) binding.setVariable('ARTIFACT_BUCKET_NAME', 'DUMMY_BUCKET_NAME') @@ -53,7 +59,7 @@ class TestOpenSearchDashboardsIntegTest extends BuildPipelineTest { binding.setVariable('BUILD_MANIFEST', buildManifest) binding.setVariable('BUILD_ID', "${buildId}") def env = binding.getVariable('env') - env['DOCKER_AGENT'] = [image:'opensearchstaging/ci-runner:ci-runner-centos7-v1', args:'-e JAVA_HOME=/opt/java/openjdk-11'] + env['DOCKER_AGENT'] = [image:'opensearchstaging/opensearchstaging/ci-runner:ci-runner-rockylinux8-opensearch-dashboards-integtest-v2', args:'-e JAVA_HOME=/opt/java/openjdk-11'] binding.getVariable('currentBuild').upstreamBuilds = [[fullProjectName: jobName]] helper.registerAllowedMethod("s3Download", [Map]) @@ -73,6 +79,7 @@ class TestOpenSearchDashboardsIntegTest extends BuildPipelineTest { closure.delegate = delegate return helper.callClosure(closure) }) + helper.addFileExistsMock("manifests/${testManifest}", true) helper.registerAllowedMethod("s3Upload", [Map]) helper.registerAllowedMethod('fileExists', [String.class], { args -> return true; @@ -86,5 +93,47 @@ class TestOpenSearchDashboardsIntegTest extends BuildPipelineTest { void integTests_runs_consistently() { super.testPipeline('jenkins/opensearch-dashboards/integ-test.jenkinsfile', 'tests/jenkins/jenkinsjob-regression-files/opensearch-dashboards/integ-test.jenkinsfile') + assertThat(getCommandExecutions('sh', 'test.sh'), hasItems( + 'env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component ganttChartDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar '.toString(), + 'env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component indexManagementDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar '.toString(), + 'env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component anomalyDetectionDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar '.toString(), + 'env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component securityDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar '.toString(), + 'env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component functionalTestDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar '.toString(), + 'env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component OpenSearch-Dashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar '.toString(), + 'env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component alertingDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar '.toString(), + 'env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component queryWorkbenchDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar '.toString(), + 'env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component reportsDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar '.toString(), + 'env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component observabilityDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar '.toString() + )) + assertThat(getCommandExecutions('sh', 'test.sh'), hasItem('env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component ganttChartDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ')) + + } + + @Test + void checkUploadResults() { + runScript('jenkins/opensearch-dashboards/integ-test.jenkinsfile') + assertThat(getCommandExecutions('s3Upload', ''), hasItem('{file=test-results, bucket=ARTIFACT_BUCKET_NAME, path=dummy_job/1.2.0/215/linux/x64/tar/test-results}')) + } + + @Test + void checkIfRunningInParallel(){ + runScript('jenkins/opensearch-dashboards/integ-test.jenkinsfile') + assertThat(getCommandExecutions('parallel', ''), hasItem('{Run Integtest ganttChartDashboards=groovy.lang.Closure, Run Integtest indexManagementDashboards=groovy.lang.Closure, Run Integtest anomalyDetectionDashboards=groovy.lang.Closure, Run Integtest OpenSearch-Dashboards=groovy.lang.Closure, Run Integtest securityDashboards=groovy.lang.Closure, Run Integtest functionalTestDashboards=groovy.lang.Closure, Run Integtest alertingDashboards=groovy.lang.Closure, Run Integtest queryWorkbenchDashboards=groovy.lang.Closure, Run Integtest reportsDashboards=groovy.lang.Closure, Run Integtest observabilityDashboards=groovy.lang.Closure}')) + } + + def getCommandExecutions(methodName, command) { + def shCommands = helper.callStack.findAll { + call -> + call.methodName == methodName + }. + collect { + call -> + callArgsToString(call) + }.findAll { + shCommand -> + shCommand.contains(command) + } + + return shCommands } -} +} \ No newline at end of file diff --git a/tests/jenkins/jenkinsjob-regression-files/opensearch-dashboards/integ-test.jenkinsfile.txt b/tests/jenkins/jenkinsjob-regression-files/opensearch-dashboards/integ-test.jenkinsfile.txt index e5b28c268b..1a63ef2999 100644 --- a/tests/jenkins/jenkinsjob-regression-files/opensearch-dashboards/integ-test.jenkinsfile.txt +++ b/tests/jenkins/jenkinsjob-regression-files/opensearch-dashboards/integ-test.jenkinsfile.txt @@ -1,29 +1,29 @@ - integ-test.run() - integ-test.modernSCM({$class=GitSCMSource, remote=https://github.com/opensearch-project/opensearch-build-libraries.git}) - integ-test.library({identifier=jenkins@4.1.1, retriever=null}) - integ-test.pipeline(groovy.lang.Closure) - integ-test.credentials(jenkins-artifact-bucket-name) - integ-test.timeout({time=4, unit=HOURS}) - integ-test.echo(Executing on agent [label:none]) - integ-test.stage(verify-parameters, groovy.lang.Closure) - integ-test.echo(Executing on agent [label:Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host]) - integ-test.script(groovy.lang.Closure) - integ-test.fileExists(manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml) - integ-test.downloadBuildManifest({url=https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar/dist/opensearch-dashboards/opensearch-dashboards-1.2.0-linux-x64.tar.gz, path=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + integ-test2.run() + integ-test2.modernSCM({$class=GitSCMSource, remote=https://github.com/opensearch-project/opensearch-build-libraries.git}) + integ-test2.library({identifier=jenkins@4.1.1, retriever=null}) + integ-test2.pipeline(groovy.lang.Closure) + integ-test2.credentials(jenkins-artifact-bucket-name) + integ-test2.timeout({time=3, unit=HOURS}) + integ-test2.echo(Executing on agent [label:none]) + integ-test2.stage(verify-parameters, groovy.lang.Closure) + integ-test2.echo(Executing on agent [label:Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host]) + integ-test2.script(groovy.lang.Closure) + integ-test2.fileExists(manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml) + integ-test2.downloadBuildManifest({url=https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar/builds/opensearch-dashboards/opensearch-dashboards-1.2.0-linux-x64.tar.gz, path=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) downloadBuildManifest.legacySCM(groovy.lang.Closure) downloadBuildManifest.library({identifier=jenkins@4.1.1, retriever=null}) - downloadBuildManifest.sh(curl -sSL https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar/dist/opensearch-dashboards/opensearch-dashboards-1.2.0-linux-x64.tar.gz --output tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml) + downloadBuildManifest.sh(curl -sSL https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar/builds/opensearch-dashboards/opensearch-dashboards-1.2.0-linux-x64.tar.gz --output tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml) downloadBuildManifest.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) BuildManifest.asBoolean() - integ-test.downloadBuildManifest({url=null, path=build-manifest-opensearch.yml}) + integ-test2.downloadBuildManifest({url=null, path=build-manifest-opensearch.yml}) downloadBuildManifest.legacySCM(groovy.lang.Closure) downloadBuildManifest.library({identifier=jenkins@4.1.1, retriever=null}) downloadBuildManifest.sh(curl -sSL null --output build-manifest-opensearch.yml) downloadBuildManifest.readYaml({file=build-manifest-opensearch.yml}) BuildManifest.asBoolean() - integ-test.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + integ-test2.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) BuildManifest.asBoolean() - integ-test.readYaml({file=build-manifest-opensearch.yml}) + integ-test2.readYaml({file=build-manifest-opensearch.yml}) BuildManifest.asBoolean() BuildManifest.getArtifactArchitecture() BuildManifest.getArtifactBuildId() @@ -31,78 +31,500 @@ BuildManifest.getDistribution() BuildManifest.getArtifactRoot(distribution-build-opensearch-dashboards, 215) BuildManifest.getArtifactRoot(distribution-build-opensearch, 215) - integ-test.echo(Version: 1.2.0, VersionOpenSearch: 1.2.0, Agent: Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host, OSD_BuildId: 215, OS_BuildId: 215, Distribution: tar) - integ-test.stage(integ-test, groovy.lang.Closure) - integ-test.echo(Executing on agent [docker:[alwaysPull:true, args:-u 1000, containerPerStageRoot:false, label:Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host, image:opensearchstaging/ci-runner:ci-runner-rockylinux8-opensearch-dashboards-integtest-v2, reuseNode:false, registryUrl:https://public.ecr.aws/, stages:[:]]]) - integ-test.script(groovy.lang.Closure) - integ-test.downloadBuildManifest({url=https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar/dist/opensearch-dashboards/opensearch-dashboards-1.2.0-linux-x64.tar.gz, path=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + integ-test2.echo(Version: 1.2.0, VersionOpenSearch: 1.2.0, Agent: Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host, OSD_BuildId: 215, OS_BuildId: 215, Distribution: tar) + integ-test2.postCleanup() + postCleanup.cleanWs({disableDeferredWipeout=true, deleteDirs=true}) + integ-test2.stage(integ-test, groovy.lang.Closure) + integ-test2.echo(Executing on agent [label:Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host]) + integ-test2.script(groovy.lang.Closure) + integ-test2.downloadBuildManifest({url=https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar/builds/opensearch-dashboards/opensearch-dashboards-1.2.0-linux-x64.tar.gz, path=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) downloadBuildManifest.legacySCM(groovy.lang.Closure) downloadBuildManifest.library({identifier=jenkins@4.1.1, retriever=null}) - downloadBuildManifest.sh(curl -sSL https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar/dist/opensearch-dashboards/opensearch-dashboards-1.2.0-linux-x64.tar.gz --output tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml) + downloadBuildManifest.sh(curl -sSL https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar/builds/opensearch-dashboards/opensearch-dashboards-1.2.0-linux-x64.tar.gz --output tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml) downloadBuildManifest.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) BuildManifest.asBoolean() - integ-test.echo(switch_user_non_root: false) - integ-test.echo(Downloading from S3: distribution-build-opensearch/1.2.0/215/linux/x64/tar) - integ-test.downloadFromS3({assumedRoleName=opensearch-bundle, roleAccountNumberCred=jenkins-aws-account-public, downloadPath=distribution-build-opensearch/1.2.0/215/linux/x64/tar/, bucketName=DUMMY_ARTIFACT_BUCKET_NAME, localPath=/tmp/workspace/artifacts, force=true}) + integ-test2.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + BuildManifest.getNames() + integ-test2.echo(switch_user_non_root: false) + integ-test2.echo(componentList: [ganttChartDashboards, indexManagementDashboards, anomalyDetectionDashboards, OpenSearch-Dashboards, securityDashboards, functionalTestDashboards, alertingDashboards, queryWorkbenchDashboards, reportsDashboards, observabilityDashboards]) + integ-test2.echo(Downloading from S3: distribution-build-opensearch/1.2.0/215/linux/x64/tar) + integ-test2.downloadFromS3({assumedRoleName=opensearch-bundle, roleAccountNumberCred=jenkins-aws-account-public, downloadPath=distribution-build-opensearch/1.2.0/215/linux/x64/tar/, bucketName=DUMMY_ARTIFACT_BUCKET_NAME, localPath=/tmp/workspace/artifacts, force=true}) downloadFromS3.string({credentialsId=jenkins-aws-account-public, variable=AWS_ACCOUNT_NUMBER}) downloadFromS3.withCredentials([AWS_ACCOUNT_NUMBER], groovy.lang.Closure) downloadFromS3.withAWS({role=opensearch-bundle, roleAccount=AWS_ACCOUNT_NUMBER, duration=900, roleSessionName=jenkins-session, region=us-east-1}, groovy.lang.Closure) downloadFromS3.s3Download({file=/tmp/workspace/artifacts, bucket=DUMMY_ARTIFACT_BUCKET_NAME, path=distribution-build-opensearch/1.2.0/215/linux/x64/tar/, force=true}) - integ-test.sh(cp -a /tmp/workspace/artifacts/distribution-build-opensearch/1.2.0/215/linux/x64/tar /tmp/workspace) - integ-test.echo(Downloading from S3: distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar) - integ-test.downloadFromS3({assumedRoleName=opensearch-bundle, roleAccountNumberCred=jenkins-aws-account-public, downloadPath=distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar/, bucketName=DUMMY_ARTIFACT_BUCKET_NAME, localPath=/tmp/workspace/artifacts, force=true}) + integ-test2.sh(cp -a /tmp/workspace/artifacts/distribution-build-opensearch/1.2.0/215/linux/x64/tar /tmp/workspace) + integ-test2.echo(Downloading from S3: distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar) + integ-test2.downloadFromS3({assumedRoleName=opensearch-bundle, roleAccountNumberCred=jenkins-aws-account-public, downloadPath=distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar/, bucketName=DUMMY_ARTIFACT_BUCKET_NAME, localPath=/tmp/workspace/artifacts, force=true}) downloadFromS3.string({credentialsId=jenkins-aws-account-public, variable=AWS_ACCOUNT_NUMBER}) downloadFromS3.withCredentials([AWS_ACCOUNT_NUMBER], groovy.lang.Closure) downloadFromS3.withAWS({role=opensearch-bundle, roleAccount=AWS_ACCOUNT_NUMBER, duration=900, roleSessionName=jenkins-session, region=us-east-1}, groovy.lang.Closure) downloadFromS3.s3Download({file=/tmp/workspace/artifacts, bucket=DUMMY_ARTIFACT_BUCKET_NAME, path=distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar/, force=true}) - integ-test.sh(cp -a /tmp/workspace/artifacts/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar /tmp/workspace) - integ-test.runIntegTestScript({jobName=distribution-build-opensearch-dashboards, componentName=functionalTestDashboards, buildManifest=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, testManifest=manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml, localPath=/tmp/workspace/tar, switchUserNonRoot=false}) - runIntegTestScript.legacySCM(groovy.lang.Closure) - runIntegTestScript.library({identifier=jenkins@4.1.1, retriever=null}) - runIntegTestScript.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) - BuildManifest.asBoolean() - BuildManifest.getDistribution() - runIntegTestScript.echo(Start integTest for distribution type: tar) - runIntegTestScript.echo(Possible Java Home: ) - runIntegTestScript.echo(Build Id: 215) - BuildManifest.getArtifactRootUrl(distribution-build-opensearch-dashboards, 215) - runIntegTestScript.echo(Artifact root URL: https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar) - runIntegTestScript.echo(User provides localPath, use local artifacts: /tmp/workspace/tar) - runIntegTestScript.echo(Paths: opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar) - runIntegTestScript.echo(Component: functionalTestDashboards) - runIntegTestScript.echo(Switch User to Non-Root (uid=1000): false) - runIntegTestScript.echo(Run command: env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component functionalTestDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) - runIntegTestScript.sh(env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component functionalTestDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) - integ-test.script(groovy.lang.Closure) - integ-test.uploadTestResults({buildManifestFileName=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, jobName=dummy_job}) - uploadTestResults.legacySCM(groovy.lang.Closure) - uploadTestResults.library({identifier=jenkins@4.1.1, retriever=null}) - uploadTestResults.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) - BuildManifest.asBoolean() - uploadTestResults.echo(Build Id: 215) - BuildManifest.getArtifactRoot(dummy_job, 215) - uploadTestResults.string({credentialsId=jenkins-artifact-bucket-name, variable=ARTIFACT_BUCKET_NAME}) - uploadTestResults.string({credentialsId=jenkins-aws-account-public, variable=AWS_ACCOUNT_PUBLIC}) - uploadTestResults.withCredentials([ARTIFACT_BUCKET_NAME, AWS_ACCOUNT_PUBLIC], groovy.lang.Closure) - uploadTestResults.echo(Uploading to s3://ARTIFACT_BUCKET_NAME/dummy_job/1.2.0/215/linux/x64/tar) - uploadTestResults.withAWS({role=opensearch-test, roleAccount=AWS_ACCOUNT_PUBLIC, duration=900, roleSessionName=jenkins-session}, groovy.lang.Closure) - uploadTestResults.s3Upload({file=test-results, bucket=ARTIFACT_BUCKET_NAME, path=dummy_job/1.2.0/215/linux/x64/tar/test-results}) - BuildManifest.getArtifactRootUrl(DUMMY_PUBLIC_ARTIFACT_URL, dummy_job) - Messages.asBoolean() - Messages.add(DUMMY_STAGE_NAME, https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/) - uploadTestResults.writeFile({file=messages/DUMMY_STAGE_NAME.msg, text=https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/}) - uploadTestResults.stash({includes=messages/*, name=messages-DUMMY_STAGE_NAME}) - integ-test.postCleanup() + integ-test2.sh(cp -a /tmp/workspace/artifacts/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar /tmp/workspace) + integ-test2.stash({includes=**, name=integtest-opensearch-dashboards-215}) + integ-test2.echo(Add Component: ganttChartDashboards) + integ-test2.echo(Add Component: indexManagementDashboards) + integ-test2.echo(Add Component: anomalyDetectionDashboards) + integ-test2.echo(Add Component: OpenSearch-Dashboards) + integ-test2.echo(Add Component: securityDashboards) + integ-test2.echo(Add Component: functionalTestDashboards) + integ-test2.echo(Add Component: alertingDashboards) + integ-test2.echo(Add Component: queryWorkbenchDashboards) + integ-test2.echo(Add Component: reportsDashboards) + integ-test2.echo(Add Component: observabilityDashboards) + integ-test2.parallel({Run Integtest ganttChartDashboards=groovy.lang.Closure, Run Integtest indexManagementDashboards=groovy.lang.Closure, Run Integtest anomalyDetectionDashboards=groovy.lang.Closure, Run Integtest OpenSearch-Dashboards=groovy.lang.Closure, Run Integtest securityDashboards=groovy.lang.Closure, Run Integtest functionalTestDashboards=groovy.lang.Closure, Run Integtest alertingDashboards=groovy.lang.Closure, Run Integtest queryWorkbenchDashboards=groovy.lang.Closure, Run Integtest reportsDashboards=groovy.lang.Closure, Run Integtest observabilityDashboards=groovy.lang.Closure}) + integ-test2.timeout({time=2, unit=HOURS}, groovy.lang.Closure) + integ-test2.node(Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host, groovy.lang.Closure) + integ-test2.echo(Component Name: ganttChartDashboards) + integ-test2.sh(echo ganttChartDashboards with index 0 will sleep 0 seconds to reduce load && sleep 0) + integ-test2.unstash(integtest-opensearch-dashboards-215) + integ-test2.sh(rm -rf test-results) + integ-test2.runIntegTestScript({jobName=distribution-build-opensearch-dashboards, componentName=ganttChartDashboards, buildManifest=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, testManifest=manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml, localPath=/tmp/workspace/tar, switchUserNonRoot=false}) + runIntegTestScript.legacySCM(groovy.lang.Closure) + runIntegTestScript.library({identifier=jenkins@4.1.1, retriever=null}) + runIntegTestScript.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + BuildManifest.getDistribution() + runIntegTestScript.echo(Start integTest for distribution type: tar) + runIntegTestScript.echo(Possible Java Home: ) + runIntegTestScript.echo(Build Id: 215) + BuildManifest.getArtifactRootUrl(distribution-build-opensearch-dashboards, 215) + runIntegTestScript.echo(Artifact root URL: https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar) + runIntegTestScript.echo(User provides localPath, use local artifacts: /tmp/workspace/tar) + runIntegTestScript.echo(Paths: opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar) + runIntegTestScript.echo(Component: ganttChartDashboards) + runIntegTestScript.echo(Switch User to Non-Root (uid=1000): false) + runIntegTestScript.echo(Run command: env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component ganttChartDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + runIntegTestScript.sh(env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component ganttChartDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + integ-test2.echo(Completed running integtest for component ganttChartDashboards) + integ-test2.uploadTestResults({buildManifestFileName=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, jobName=dummy_job}) + uploadTestResults.legacySCM(groovy.lang.Closure) + uploadTestResults.library({identifier=jenkins@4.1.1, retriever=null}) + uploadTestResults.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + uploadTestResults.echo(Build Id: 215) + BuildManifest.getArtifactRoot(dummy_job, 215) + uploadTestResults.string({credentialsId=jenkins-artifact-bucket-name, variable=ARTIFACT_BUCKET_NAME}) + uploadTestResults.string({credentialsId=jenkins-aws-account-public, variable=AWS_ACCOUNT_PUBLIC}) + uploadTestResults.withCredentials([ARTIFACT_BUCKET_NAME, AWS_ACCOUNT_PUBLIC], groovy.lang.Closure) + uploadTestResults.echo(Uploading to s3://ARTIFACT_BUCKET_NAME/dummy_job/1.2.0/215/linux/x64/tar) + uploadTestResults.withAWS({role=opensearch-test, roleAccount=AWS_ACCOUNT_PUBLIC, duration=900, roleSessionName=jenkins-session}, groovy.lang.Closure) + uploadTestResults.s3Upload({file=test-results, bucket=ARTIFACT_BUCKET_NAME, path=dummy_job/1.2.0/215/linux/x64/tar/test-results}) + BuildManifest.getArtifactRootUrl(DUMMY_PUBLIC_ARTIFACT_URL, dummy_job) + Messages.asBoolean() + Messages.add(DUMMY_STAGE_NAME, https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/) + uploadTestResults.writeFile({file=messages/DUMMY_STAGE_NAME.msg, text=https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/}) + uploadTestResults.stash({includes=messages/*, name=messages-DUMMY_STAGE_NAME}) + integ-test2.postCleanup() + postCleanup.cleanWs({disableDeferredWipeout=true, deleteDirs=true}) + integ-test2.timeout({time=2, unit=HOURS}, groovy.lang.Closure) + integ-test2.node(Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host, groovy.lang.Closure) + integ-test2.echo(Component Name: indexManagementDashboards) + integ-test2.sh(echo indexManagementDashboards with index 1 will sleep 10 seconds to reduce load && sleep 10) + integ-test2.unstash(integtest-opensearch-dashboards-215) + integ-test2.sh(rm -rf test-results) + integ-test2.runIntegTestScript({jobName=distribution-build-opensearch-dashboards, componentName=indexManagementDashboards, buildManifest=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, testManifest=manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml, localPath=/tmp/workspace/tar, switchUserNonRoot=false}) + runIntegTestScript.legacySCM(groovy.lang.Closure) + runIntegTestScript.library({identifier=jenkins@4.1.1, retriever=null}) + runIntegTestScript.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + BuildManifest.getDistribution() + runIntegTestScript.echo(Start integTest for distribution type: tar) + runIntegTestScript.echo(Possible Java Home: ) + runIntegTestScript.echo(Build Id: 215) + BuildManifest.getArtifactRootUrl(distribution-build-opensearch-dashboards, 215) + runIntegTestScript.echo(Artifact root URL: https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar) + runIntegTestScript.echo(User provides localPath, use local artifacts: /tmp/workspace/tar) + runIntegTestScript.echo(Paths: opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar) + runIntegTestScript.echo(Component: indexManagementDashboards) + runIntegTestScript.echo(Switch User to Non-Root (uid=1000): false) + runIntegTestScript.echo(Run command: env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component indexManagementDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + runIntegTestScript.sh(env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component indexManagementDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + integ-test2.echo(Completed running integtest for component indexManagementDashboards) + integ-test2.uploadTestResults({buildManifestFileName=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, jobName=dummy_job}) + uploadTestResults.legacySCM(groovy.lang.Closure) + uploadTestResults.library({identifier=jenkins@4.1.1, retriever=null}) + uploadTestResults.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + uploadTestResults.echo(Build Id: 215) + BuildManifest.getArtifactRoot(dummy_job, 215) + uploadTestResults.string({credentialsId=jenkins-artifact-bucket-name, variable=ARTIFACT_BUCKET_NAME}) + uploadTestResults.string({credentialsId=jenkins-aws-account-public, variable=AWS_ACCOUNT_PUBLIC}) + uploadTestResults.withCredentials([ARTIFACT_BUCKET_NAME, AWS_ACCOUNT_PUBLIC], groovy.lang.Closure) + uploadTestResults.echo(Uploading to s3://ARTIFACT_BUCKET_NAME/dummy_job/1.2.0/215/linux/x64/tar) + uploadTestResults.withAWS({role=opensearch-test, roleAccount=AWS_ACCOUNT_PUBLIC, duration=900, roleSessionName=jenkins-session}, groovy.lang.Closure) + uploadTestResults.s3Upload({file=test-results, bucket=ARTIFACT_BUCKET_NAME, path=dummy_job/1.2.0/215/linux/x64/tar/test-results}) + BuildManifest.getArtifactRootUrl(DUMMY_PUBLIC_ARTIFACT_URL, dummy_job) + Messages.asBoolean() + Messages.add(DUMMY_STAGE_NAME, https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/) + uploadTestResults.writeFile({file=messages/DUMMY_STAGE_NAME.msg, text=https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/}) + uploadTestResults.stash({includes=messages/*, name=messages-DUMMY_STAGE_NAME}) + integ-test2.postCleanup() + postCleanup.cleanWs({disableDeferredWipeout=true, deleteDirs=true}) + integ-test2.timeout({time=2, unit=HOURS}, groovy.lang.Closure) + integ-test2.node(Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host, groovy.lang.Closure) + integ-test2.echo(Component Name: anomalyDetectionDashboards) + integ-test2.sh(echo anomalyDetectionDashboards with index 2 will sleep 20 seconds to reduce load && sleep 20) + integ-test2.unstash(integtest-opensearch-dashboards-215) + integ-test2.sh(rm -rf test-results) + integ-test2.runIntegTestScript({jobName=distribution-build-opensearch-dashboards, componentName=anomalyDetectionDashboards, buildManifest=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, testManifest=manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml, localPath=/tmp/workspace/tar, switchUserNonRoot=false}) + runIntegTestScript.legacySCM(groovy.lang.Closure) + runIntegTestScript.library({identifier=jenkins@4.1.1, retriever=null}) + runIntegTestScript.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + BuildManifest.getDistribution() + runIntegTestScript.echo(Start integTest for distribution type: tar) + runIntegTestScript.echo(Possible Java Home: ) + runIntegTestScript.echo(Build Id: 215) + BuildManifest.getArtifactRootUrl(distribution-build-opensearch-dashboards, 215) + runIntegTestScript.echo(Artifact root URL: https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar) + runIntegTestScript.echo(User provides localPath, use local artifacts: /tmp/workspace/tar) + runIntegTestScript.echo(Paths: opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar) + runIntegTestScript.echo(Component: anomalyDetectionDashboards) + runIntegTestScript.echo(Switch User to Non-Root (uid=1000): false) + runIntegTestScript.echo(Run command: env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component anomalyDetectionDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + runIntegTestScript.sh(env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component anomalyDetectionDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + integ-test2.echo(Completed running integtest for component anomalyDetectionDashboards) + integ-test2.uploadTestResults({buildManifestFileName=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, jobName=dummy_job}) + uploadTestResults.legacySCM(groovy.lang.Closure) + uploadTestResults.library({identifier=jenkins@4.1.1, retriever=null}) + uploadTestResults.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + uploadTestResults.echo(Build Id: 215) + BuildManifest.getArtifactRoot(dummy_job, 215) + uploadTestResults.string({credentialsId=jenkins-artifact-bucket-name, variable=ARTIFACT_BUCKET_NAME}) + uploadTestResults.string({credentialsId=jenkins-aws-account-public, variable=AWS_ACCOUNT_PUBLIC}) + uploadTestResults.withCredentials([ARTIFACT_BUCKET_NAME, AWS_ACCOUNT_PUBLIC], groovy.lang.Closure) + uploadTestResults.echo(Uploading to s3://ARTIFACT_BUCKET_NAME/dummy_job/1.2.0/215/linux/x64/tar) + uploadTestResults.withAWS({role=opensearch-test, roleAccount=AWS_ACCOUNT_PUBLIC, duration=900, roleSessionName=jenkins-session}, groovy.lang.Closure) + uploadTestResults.s3Upload({file=test-results, bucket=ARTIFACT_BUCKET_NAME, path=dummy_job/1.2.0/215/linux/x64/tar/test-results}) + BuildManifest.getArtifactRootUrl(DUMMY_PUBLIC_ARTIFACT_URL, dummy_job) + Messages.asBoolean() + Messages.add(DUMMY_STAGE_NAME, https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/) + uploadTestResults.writeFile({file=messages/DUMMY_STAGE_NAME.msg, text=https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/}) + uploadTestResults.stash({includes=messages/*, name=messages-DUMMY_STAGE_NAME}) + integ-test2.postCleanup() + postCleanup.cleanWs({disableDeferredWipeout=true, deleteDirs=true}) + integ-test2.timeout({time=2, unit=HOURS}, groovy.lang.Closure) + integ-test2.node(Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host, groovy.lang.Closure) + integ-test2.echo(Component Name: OpenSearch-Dashboards) + integ-test2.sh(echo OpenSearch-Dashboards with index 3 will sleep 30 seconds to reduce load && sleep 30) + integ-test2.unstash(integtest-opensearch-dashboards-215) + integ-test2.sh(rm -rf test-results) + integ-test2.runIntegTestScript({jobName=distribution-build-opensearch-dashboards, componentName=OpenSearch-Dashboards, buildManifest=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, testManifest=manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml, localPath=/tmp/workspace/tar, switchUserNonRoot=false}) + runIntegTestScript.legacySCM(groovy.lang.Closure) + runIntegTestScript.library({identifier=jenkins@4.1.1, retriever=null}) + runIntegTestScript.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + BuildManifest.getDistribution() + runIntegTestScript.echo(Start integTest for distribution type: tar) + runIntegTestScript.echo(Possible Java Home: ) + runIntegTestScript.echo(Build Id: 215) + BuildManifest.getArtifactRootUrl(distribution-build-opensearch-dashboards, 215) + runIntegTestScript.echo(Artifact root URL: https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar) + runIntegTestScript.echo(User provides localPath, use local artifacts: /tmp/workspace/tar) + runIntegTestScript.echo(Paths: opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar) + runIntegTestScript.echo(Component: OpenSearch-Dashboards) + runIntegTestScript.echo(Switch User to Non-Root (uid=1000): false) + runIntegTestScript.echo(Run command: env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component OpenSearch-Dashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + runIntegTestScript.sh(env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component OpenSearch-Dashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + integ-test2.echo(Completed running integtest for component OpenSearch-Dashboards) + integ-test2.uploadTestResults({buildManifestFileName=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, jobName=dummy_job}) + uploadTestResults.legacySCM(groovy.lang.Closure) + uploadTestResults.library({identifier=jenkins@4.1.1, retriever=null}) + uploadTestResults.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + uploadTestResults.echo(Build Id: 215) + BuildManifest.getArtifactRoot(dummy_job, 215) + uploadTestResults.string({credentialsId=jenkins-artifact-bucket-name, variable=ARTIFACT_BUCKET_NAME}) + uploadTestResults.string({credentialsId=jenkins-aws-account-public, variable=AWS_ACCOUNT_PUBLIC}) + uploadTestResults.withCredentials([ARTIFACT_BUCKET_NAME, AWS_ACCOUNT_PUBLIC], groovy.lang.Closure) + uploadTestResults.echo(Uploading to s3://ARTIFACT_BUCKET_NAME/dummy_job/1.2.0/215/linux/x64/tar) + uploadTestResults.withAWS({role=opensearch-test, roleAccount=AWS_ACCOUNT_PUBLIC, duration=900, roleSessionName=jenkins-session}, groovy.lang.Closure) + uploadTestResults.s3Upload({file=test-results, bucket=ARTIFACT_BUCKET_NAME, path=dummy_job/1.2.0/215/linux/x64/tar/test-results}) + BuildManifest.getArtifactRootUrl(DUMMY_PUBLIC_ARTIFACT_URL, dummy_job) + Messages.asBoolean() + Messages.add(DUMMY_STAGE_NAME, https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/) + uploadTestResults.writeFile({file=messages/DUMMY_STAGE_NAME.msg, text=https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/}) + uploadTestResults.stash({includes=messages/*, name=messages-DUMMY_STAGE_NAME}) + integ-test2.postCleanup() + postCleanup.cleanWs({disableDeferredWipeout=true, deleteDirs=true}) + integ-test2.timeout({time=2, unit=HOURS}, groovy.lang.Closure) + integ-test2.node(Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host, groovy.lang.Closure) + integ-test2.echo(Component Name: securityDashboards) + integ-test2.sh(echo securityDashboards with index 4 will sleep 40 seconds to reduce load && sleep 40) + integ-test2.unstash(integtest-opensearch-dashboards-215) + integ-test2.sh(rm -rf test-results) + integ-test2.runIntegTestScript({jobName=distribution-build-opensearch-dashboards, componentName=securityDashboards, buildManifest=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, testManifest=manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml, localPath=/tmp/workspace/tar, switchUserNonRoot=false}) + runIntegTestScript.legacySCM(groovy.lang.Closure) + runIntegTestScript.library({identifier=jenkins@4.1.1, retriever=null}) + runIntegTestScript.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + BuildManifest.getDistribution() + runIntegTestScript.echo(Start integTest for distribution type: tar) + runIntegTestScript.echo(Possible Java Home: ) + runIntegTestScript.echo(Build Id: 215) + BuildManifest.getArtifactRootUrl(distribution-build-opensearch-dashboards, 215) + runIntegTestScript.echo(Artifact root URL: https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar) + runIntegTestScript.echo(User provides localPath, use local artifacts: /tmp/workspace/tar) + runIntegTestScript.echo(Paths: opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar) + runIntegTestScript.echo(Component: securityDashboards) + runIntegTestScript.echo(Switch User to Non-Root (uid=1000): false) + runIntegTestScript.echo(Run command: env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component securityDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + runIntegTestScript.sh(env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component securityDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + integ-test2.echo(Completed running integtest for component securityDashboards) + integ-test2.uploadTestResults({buildManifestFileName=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, jobName=dummy_job}) + uploadTestResults.legacySCM(groovy.lang.Closure) + uploadTestResults.library({identifier=jenkins@4.1.1, retriever=null}) + uploadTestResults.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + uploadTestResults.echo(Build Id: 215) + BuildManifest.getArtifactRoot(dummy_job, 215) + uploadTestResults.string({credentialsId=jenkins-artifact-bucket-name, variable=ARTIFACT_BUCKET_NAME}) + uploadTestResults.string({credentialsId=jenkins-aws-account-public, variable=AWS_ACCOUNT_PUBLIC}) + uploadTestResults.withCredentials([ARTIFACT_BUCKET_NAME, AWS_ACCOUNT_PUBLIC], groovy.lang.Closure) + uploadTestResults.echo(Uploading to s3://ARTIFACT_BUCKET_NAME/dummy_job/1.2.0/215/linux/x64/tar) + uploadTestResults.withAWS({role=opensearch-test, roleAccount=AWS_ACCOUNT_PUBLIC, duration=900, roleSessionName=jenkins-session}, groovy.lang.Closure) + uploadTestResults.s3Upload({file=test-results, bucket=ARTIFACT_BUCKET_NAME, path=dummy_job/1.2.0/215/linux/x64/tar/test-results}) + BuildManifest.getArtifactRootUrl(DUMMY_PUBLIC_ARTIFACT_URL, dummy_job) + Messages.asBoolean() + Messages.add(DUMMY_STAGE_NAME, https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/) + uploadTestResults.writeFile({file=messages/DUMMY_STAGE_NAME.msg, text=https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/}) + uploadTestResults.stash({includes=messages/*, name=messages-DUMMY_STAGE_NAME}) + integ-test2.postCleanup() + postCleanup.cleanWs({disableDeferredWipeout=true, deleteDirs=true}) + integ-test2.timeout({time=2, unit=HOURS}, groovy.lang.Closure) + integ-test2.node(Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host, groovy.lang.Closure) + integ-test2.echo(Component Name: functionalTestDashboards) + integ-test2.sh(echo functionalTestDashboards with index 5 will sleep 50 seconds to reduce load && sleep 50) + integ-test2.unstash(integtest-opensearch-dashboards-215) + integ-test2.sh(rm -rf test-results) + integ-test2.runIntegTestScript({jobName=distribution-build-opensearch-dashboards, componentName=functionalTestDashboards, buildManifest=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, testManifest=manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml, localPath=/tmp/workspace/tar, switchUserNonRoot=false}) + runIntegTestScript.legacySCM(groovy.lang.Closure) + runIntegTestScript.library({identifier=jenkins@4.1.1, retriever=null}) + runIntegTestScript.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + BuildManifest.getDistribution() + runIntegTestScript.echo(Start integTest for distribution type: tar) + runIntegTestScript.echo(Possible Java Home: ) + runIntegTestScript.echo(Build Id: 215) + BuildManifest.getArtifactRootUrl(distribution-build-opensearch-dashboards, 215) + runIntegTestScript.echo(Artifact root URL: https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar) + runIntegTestScript.echo(User provides localPath, use local artifacts: /tmp/workspace/tar) + runIntegTestScript.echo(Paths: opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar) + runIntegTestScript.echo(Component: functionalTestDashboards) + runIntegTestScript.echo(Switch User to Non-Root (uid=1000): false) + runIntegTestScript.echo(Run command: env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component functionalTestDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + runIntegTestScript.sh(env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component functionalTestDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + integ-test2.echo(Completed running integtest for component functionalTestDashboards) + integ-test2.uploadTestResults({buildManifestFileName=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, jobName=dummy_job}) + uploadTestResults.legacySCM(groovy.lang.Closure) + uploadTestResults.library({identifier=jenkins@4.1.1, retriever=null}) + uploadTestResults.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + uploadTestResults.echo(Build Id: 215) + BuildManifest.getArtifactRoot(dummy_job, 215) + uploadTestResults.string({credentialsId=jenkins-artifact-bucket-name, variable=ARTIFACT_BUCKET_NAME}) + uploadTestResults.string({credentialsId=jenkins-aws-account-public, variable=AWS_ACCOUNT_PUBLIC}) + uploadTestResults.withCredentials([ARTIFACT_BUCKET_NAME, AWS_ACCOUNT_PUBLIC], groovy.lang.Closure) + uploadTestResults.echo(Uploading to s3://ARTIFACT_BUCKET_NAME/dummy_job/1.2.0/215/linux/x64/tar) + uploadTestResults.withAWS({role=opensearch-test, roleAccount=AWS_ACCOUNT_PUBLIC, duration=900, roleSessionName=jenkins-session}, groovy.lang.Closure) + uploadTestResults.s3Upload({file=test-results, bucket=ARTIFACT_BUCKET_NAME, path=dummy_job/1.2.0/215/linux/x64/tar/test-results}) + BuildManifest.getArtifactRootUrl(DUMMY_PUBLIC_ARTIFACT_URL, dummy_job) + Messages.asBoolean() + Messages.add(DUMMY_STAGE_NAME, https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/) + uploadTestResults.writeFile({file=messages/DUMMY_STAGE_NAME.msg, text=https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/}) + uploadTestResults.stash({includes=messages/*, name=messages-DUMMY_STAGE_NAME}) + integ-test2.postCleanup() + postCleanup.cleanWs({disableDeferredWipeout=true, deleteDirs=true}) + integ-test2.timeout({time=2, unit=HOURS}, groovy.lang.Closure) + integ-test2.node(Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host, groovy.lang.Closure) + integ-test2.echo(Component Name: alertingDashboards) + integ-test2.sh(echo alertingDashboards with index 6 will sleep 60 seconds to reduce load && sleep 60) + integ-test2.unstash(integtest-opensearch-dashboards-215) + integ-test2.sh(rm -rf test-results) + integ-test2.runIntegTestScript({jobName=distribution-build-opensearch-dashboards, componentName=alertingDashboards, buildManifest=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, testManifest=manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml, localPath=/tmp/workspace/tar, switchUserNonRoot=false}) + runIntegTestScript.legacySCM(groovy.lang.Closure) + runIntegTestScript.library({identifier=jenkins@4.1.1, retriever=null}) + runIntegTestScript.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + BuildManifest.getDistribution() + runIntegTestScript.echo(Start integTest for distribution type: tar) + runIntegTestScript.echo(Possible Java Home: ) + runIntegTestScript.echo(Build Id: 215) + BuildManifest.getArtifactRootUrl(distribution-build-opensearch-dashboards, 215) + runIntegTestScript.echo(Artifact root URL: https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar) + runIntegTestScript.echo(User provides localPath, use local artifacts: /tmp/workspace/tar) + runIntegTestScript.echo(Paths: opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar) + runIntegTestScript.echo(Component: alertingDashboards) + runIntegTestScript.echo(Switch User to Non-Root (uid=1000): false) + runIntegTestScript.echo(Run command: env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component alertingDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + runIntegTestScript.sh(env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component alertingDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + integ-test2.echo(Completed running integtest for component alertingDashboards) + integ-test2.uploadTestResults({buildManifestFileName=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, jobName=dummy_job}) + uploadTestResults.legacySCM(groovy.lang.Closure) + uploadTestResults.library({identifier=jenkins@4.1.1, retriever=null}) + uploadTestResults.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + uploadTestResults.echo(Build Id: 215) + BuildManifest.getArtifactRoot(dummy_job, 215) + uploadTestResults.string({credentialsId=jenkins-artifact-bucket-name, variable=ARTIFACT_BUCKET_NAME}) + uploadTestResults.string({credentialsId=jenkins-aws-account-public, variable=AWS_ACCOUNT_PUBLIC}) + uploadTestResults.withCredentials([ARTIFACT_BUCKET_NAME, AWS_ACCOUNT_PUBLIC], groovy.lang.Closure) + uploadTestResults.echo(Uploading to s3://ARTIFACT_BUCKET_NAME/dummy_job/1.2.0/215/linux/x64/tar) + uploadTestResults.withAWS({role=opensearch-test, roleAccount=AWS_ACCOUNT_PUBLIC, duration=900, roleSessionName=jenkins-session}, groovy.lang.Closure) + uploadTestResults.s3Upload({file=test-results, bucket=ARTIFACT_BUCKET_NAME, path=dummy_job/1.2.0/215/linux/x64/tar/test-results}) + BuildManifest.getArtifactRootUrl(DUMMY_PUBLIC_ARTIFACT_URL, dummy_job) + Messages.asBoolean() + Messages.add(DUMMY_STAGE_NAME, https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/) + uploadTestResults.writeFile({file=messages/DUMMY_STAGE_NAME.msg, text=https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/}) + uploadTestResults.stash({includes=messages/*, name=messages-DUMMY_STAGE_NAME}) + integ-test2.postCleanup() + postCleanup.cleanWs({disableDeferredWipeout=true, deleteDirs=true}) + integ-test2.timeout({time=2, unit=HOURS}, groovy.lang.Closure) + integ-test2.node(Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host, groovy.lang.Closure) + integ-test2.echo(Component Name: queryWorkbenchDashboards) + integ-test2.sh(echo queryWorkbenchDashboards with index 7 will sleep 70 seconds to reduce load && sleep 70) + integ-test2.unstash(integtest-opensearch-dashboards-215) + integ-test2.sh(rm -rf test-results) + integ-test2.runIntegTestScript({jobName=distribution-build-opensearch-dashboards, componentName=queryWorkbenchDashboards, buildManifest=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, testManifest=manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml, localPath=/tmp/workspace/tar, switchUserNonRoot=false}) + runIntegTestScript.legacySCM(groovy.lang.Closure) + runIntegTestScript.library({identifier=jenkins@4.1.1, retriever=null}) + runIntegTestScript.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + BuildManifest.getDistribution() + runIntegTestScript.echo(Start integTest for distribution type: tar) + runIntegTestScript.echo(Possible Java Home: ) + runIntegTestScript.echo(Build Id: 215) + BuildManifest.getArtifactRootUrl(distribution-build-opensearch-dashboards, 215) + runIntegTestScript.echo(Artifact root URL: https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar) + runIntegTestScript.echo(User provides localPath, use local artifacts: /tmp/workspace/tar) + runIntegTestScript.echo(Paths: opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar) + runIntegTestScript.echo(Component: queryWorkbenchDashboards) + runIntegTestScript.echo(Switch User to Non-Root (uid=1000): false) + runIntegTestScript.echo(Run command: env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component queryWorkbenchDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + runIntegTestScript.sh(env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component queryWorkbenchDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + integ-test2.echo(Completed running integtest for component queryWorkbenchDashboards) + integ-test2.uploadTestResults({buildManifestFileName=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, jobName=dummy_job}) + uploadTestResults.legacySCM(groovy.lang.Closure) + uploadTestResults.library({identifier=jenkins@4.1.1, retriever=null}) + uploadTestResults.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + uploadTestResults.echo(Build Id: 215) + BuildManifest.getArtifactRoot(dummy_job, 215) + uploadTestResults.string({credentialsId=jenkins-artifact-bucket-name, variable=ARTIFACT_BUCKET_NAME}) + uploadTestResults.string({credentialsId=jenkins-aws-account-public, variable=AWS_ACCOUNT_PUBLIC}) + uploadTestResults.withCredentials([ARTIFACT_BUCKET_NAME, AWS_ACCOUNT_PUBLIC], groovy.lang.Closure) + uploadTestResults.echo(Uploading to s3://ARTIFACT_BUCKET_NAME/dummy_job/1.2.0/215/linux/x64/tar) + uploadTestResults.withAWS({role=opensearch-test, roleAccount=AWS_ACCOUNT_PUBLIC, duration=900, roleSessionName=jenkins-session}, groovy.lang.Closure) + uploadTestResults.s3Upload({file=test-results, bucket=ARTIFACT_BUCKET_NAME, path=dummy_job/1.2.0/215/linux/x64/tar/test-results}) + BuildManifest.getArtifactRootUrl(DUMMY_PUBLIC_ARTIFACT_URL, dummy_job) + Messages.asBoolean() + Messages.add(DUMMY_STAGE_NAME, https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/) + uploadTestResults.writeFile({file=messages/DUMMY_STAGE_NAME.msg, text=https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/}) + uploadTestResults.stash({includes=messages/*, name=messages-DUMMY_STAGE_NAME}) + integ-test2.postCleanup() + postCleanup.cleanWs({disableDeferredWipeout=true, deleteDirs=true}) + integ-test2.timeout({time=2, unit=HOURS}, groovy.lang.Closure) + integ-test2.node(Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host, groovy.lang.Closure) + integ-test2.echo(Component Name: reportsDashboards) + integ-test2.sh(echo reportsDashboards with index 8 will sleep 80 seconds to reduce load && sleep 80) + integ-test2.unstash(integtest-opensearch-dashboards-215) + integ-test2.sh(rm -rf test-results) + integ-test2.runIntegTestScript({jobName=distribution-build-opensearch-dashboards, componentName=reportsDashboards, buildManifest=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, testManifest=manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml, localPath=/tmp/workspace/tar, switchUserNonRoot=false}) + runIntegTestScript.legacySCM(groovy.lang.Closure) + runIntegTestScript.library({identifier=jenkins@4.1.1, retriever=null}) + runIntegTestScript.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + BuildManifest.getDistribution() + runIntegTestScript.echo(Start integTest for distribution type: tar) + runIntegTestScript.echo(Possible Java Home: ) + runIntegTestScript.echo(Build Id: 215) + BuildManifest.getArtifactRootUrl(distribution-build-opensearch-dashboards, 215) + runIntegTestScript.echo(Artifact root URL: https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar) + runIntegTestScript.echo(User provides localPath, use local artifacts: /tmp/workspace/tar) + runIntegTestScript.echo(Paths: opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar) + runIntegTestScript.echo(Component: reportsDashboards) + runIntegTestScript.echo(Switch User to Non-Root (uid=1000): false) + runIntegTestScript.echo(Run command: env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component reportsDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + runIntegTestScript.sh(env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component reportsDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + integ-test2.echo(Completed running integtest for component reportsDashboards) + integ-test2.uploadTestResults({buildManifestFileName=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, jobName=dummy_job}) + uploadTestResults.legacySCM(groovy.lang.Closure) + uploadTestResults.library({identifier=jenkins@4.1.1, retriever=null}) + uploadTestResults.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + uploadTestResults.echo(Build Id: 215) + BuildManifest.getArtifactRoot(dummy_job, 215) + uploadTestResults.string({credentialsId=jenkins-artifact-bucket-name, variable=ARTIFACT_BUCKET_NAME}) + uploadTestResults.string({credentialsId=jenkins-aws-account-public, variable=AWS_ACCOUNT_PUBLIC}) + uploadTestResults.withCredentials([ARTIFACT_BUCKET_NAME, AWS_ACCOUNT_PUBLIC], groovy.lang.Closure) + uploadTestResults.echo(Uploading to s3://ARTIFACT_BUCKET_NAME/dummy_job/1.2.0/215/linux/x64/tar) + uploadTestResults.withAWS({role=opensearch-test, roleAccount=AWS_ACCOUNT_PUBLIC, duration=900, roleSessionName=jenkins-session}, groovy.lang.Closure) + uploadTestResults.s3Upload({file=test-results, bucket=ARTIFACT_BUCKET_NAME, path=dummy_job/1.2.0/215/linux/x64/tar/test-results}) + BuildManifest.getArtifactRootUrl(DUMMY_PUBLIC_ARTIFACT_URL, dummy_job) + Messages.asBoolean() + Messages.add(DUMMY_STAGE_NAME, https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/) + uploadTestResults.writeFile({file=messages/DUMMY_STAGE_NAME.msg, text=https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/}) + uploadTestResults.stash({includes=messages/*, name=messages-DUMMY_STAGE_NAME}) + integ-test2.postCleanup() + postCleanup.cleanWs({disableDeferredWipeout=true, deleteDirs=true}) + integ-test2.timeout({time=2, unit=HOURS}, groovy.lang.Closure) + integ-test2.node(Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host, groovy.lang.Closure) + integ-test2.echo(Component Name: observabilityDashboards) + integ-test2.sh(echo observabilityDashboards with index 9 will sleep 90 seconds to reduce load && sleep 90) + integ-test2.unstash(integtest-opensearch-dashboards-215) + integ-test2.sh(rm -rf test-results) + integ-test2.runIntegTestScript({jobName=distribution-build-opensearch-dashboards, componentName=observabilityDashboards, buildManifest=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, testManifest=manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml, localPath=/tmp/workspace/tar, switchUserNonRoot=false}) + runIntegTestScript.legacySCM(groovy.lang.Closure) + runIntegTestScript.library({identifier=jenkins@4.1.1, retriever=null}) + runIntegTestScript.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + BuildManifest.getDistribution() + runIntegTestScript.echo(Start integTest for distribution type: tar) + runIntegTestScript.echo(Possible Java Home: ) + runIntegTestScript.echo(Build Id: 215) + BuildManifest.getArtifactRootUrl(distribution-build-opensearch-dashboards, 215) + runIntegTestScript.echo(Artifact root URL: https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/1.2.0/215/linux/x64/tar) + runIntegTestScript.echo(User provides localPath, use local artifacts: /tmp/workspace/tar) + runIntegTestScript.echo(Paths: opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar) + runIntegTestScript.echo(Component: observabilityDashboards) + runIntegTestScript.echo(Switch User to Non-Root (uid=1000): false) + runIntegTestScript.echo(Run command: env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component observabilityDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + runIntegTestScript.sh(env PATH=$PATH ./test.sh integ-test manifests/tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml --component observabilityDashboards --test-run-id 215 --paths opensearch=/tmp/workspace/tar opensearch-dashboards=/tmp/workspace/tar ) + integ-test2.echo(Completed running integtest for component observabilityDashboards) + integ-test2.uploadTestResults({buildManifestFileName=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml, jobName=dummy_job}) + uploadTestResults.legacySCM(groovy.lang.Closure) + uploadTestResults.library({identifier=jenkins@4.1.1, retriever=null}) + uploadTestResults.readYaml({file=tests/jenkins/data/opensearch-dashboards-1.2.0-build.yml}) + BuildManifest.asBoolean() + uploadTestResults.echo(Build Id: 215) + BuildManifest.getArtifactRoot(dummy_job, 215) + uploadTestResults.string({credentialsId=jenkins-artifact-bucket-name, variable=ARTIFACT_BUCKET_NAME}) + uploadTestResults.string({credentialsId=jenkins-aws-account-public, variable=AWS_ACCOUNT_PUBLIC}) + uploadTestResults.withCredentials([ARTIFACT_BUCKET_NAME, AWS_ACCOUNT_PUBLIC], groovy.lang.Closure) + uploadTestResults.echo(Uploading to s3://ARTIFACT_BUCKET_NAME/dummy_job/1.2.0/215/linux/x64/tar) + uploadTestResults.withAWS({role=opensearch-test, roleAccount=AWS_ACCOUNT_PUBLIC, duration=900, roleSessionName=jenkins-session}, groovy.lang.Closure) + uploadTestResults.s3Upload({file=test-results, bucket=ARTIFACT_BUCKET_NAME, path=dummy_job/1.2.0/215/linux/x64/tar/test-results}) + BuildManifest.getArtifactRootUrl(DUMMY_PUBLIC_ARTIFACT_URL, dummy_job) + Messages.asBoolean() + Messages.add(DUMMY_STAGE_NAME, https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/) + uploadTestResults.writeFile({file=messages/DUMMY_STAGE_NAME.msg, text=https://ci.opensearch.org/ci/dbc/DUMMY_PUBLIC_ARTIFACT_URL/1.2.0/dummy_job/linux/x64/tar/test-results/}) + uploadTestResults.stash({includes=messages/*, name=messages-DUMMY_STAGE_NAME}) + integ-test2.postCleanup() + postCleanup.cleanWs({disableDeferredWipeout=true, deleteDirs=true}) + integ-test2.postCleanup() postCleanup.cleanWs({disableDeferredWipeout=true, deleteDirs=true}) - integ-test.node(Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host, groovy.lang.Closure) - integ-test.script(groovy.lang.Closure) + integ-test2.node(Jenkins-Agent-AL2-X64-C54xlarge-Docker-Host, groovy.lang.Closure) + integ-test2.script(groovy.lang.Closure) Messages.asBoolean() Messages.get([integ-test]) - integ-test.unstash({name=messages-integ-test}) - integ-test.findFiles({excludes=, glob=messages/*}) - integ-test.dir(messages, groovy.lang.Closure) - integ-test.deleteDir() - integ-test.publishNotification({icon=:white_check_mark:, message=Integration Tests Successful, extra=, credentialsId=jenkins-integ-test-webhook, manifest=tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml}) + integ-test2.unstash({name=messages-integ-test}) + integ-test2.findFiles({excludes=, glob=messages/*}) + integ-test2.dir(messages, groovy.lang.Closure) + integ-test2.deleteDir() + integ-test2.publishNotification({icon=:white_check_mark:, message=Integration Tests Successful, extra=, credentialsId=jenkins-integ-test-webhook, manifest=tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml}) publishNotification.string({credentialsId=jenkins-integ-test-webhook, variable=WEBHOOK_URL}) publishNotification.withCredentials([WEBHOOK_URL], groovy.lang.Closure) publishNotification.sh(curl -XPOST --header "Content-Type: application/json" --data '{"result_text":":white_check_mark: @@ -112,5 +534,5 @@ MESSAGE=Integration Tests Successful BUILD_URL: htth://BUILD_URL_dummy.com MANIFEST: tests/jenkins/data/opensearch-dashboards-1.2.0-test.yml "}' "WEBHOOK_URL") - integ-test.postCleanup() + integ-test2.postCleanup() postCleanup.cleanWs({disableDeferredWipeout=true, deleteDirs=true})