Skip to content

Commit

Permalink
Debugging
Browse files Browse the repository at this point in the history
  • Loading branch information
anupama2501 committed Nov 5, 2024
1 parent 85c4ac0 commit 715506c
Show file tree
Hide file tree
Showing 3 changed files with 118 additions and 78 deletions.
175 changes: 100 additions & 75 deletions tests/v2/validation/pipeline/Jenkinsfile.release.upgrade.local
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,11 @@ node {
def patchedConfigsDir = "patched-cattle-configs"

def testResultsOut = "results.xml"
def testResultsJSON = "results.json"
def envFile = ".env"
def rancherConfig = "rancher_env.config"
def qaseRun = "testrun"
def testRunConfig = "testrunconfig.yaml"

// rancher
def rancherRepo = scm.getUserRemoteConfigs()[0].getUrl()
Expand Down Expand Up @@ -118,7 +121,8 @@ node {
string(credentialsId: 'RANCHER_VALID_TLS_KEY', variable: 'RANCHER_VALID_TLS_KEY'),
string(credentialsId: 'RANCHER_BYO_TLS_CERT', variable: 'RANCHER_BYO_TLS_CERT'),
string(credentialsId: 'RANCHER_BYO_TLS_KEY', variable: 'RANCHER_BYO_TLS_KEY'),
string(credentialsId: 'RANCHER_LINODE_ACCESSKEY', variable: "RANCHER_LINODE_ACCESSKEY")]) {
string(credentialsId: 'QASE_AUTOMATION_TOKEN', variable: 'QASE_AUTOMATION_TOKEN'),
string(credentialsId: 'RANCHER_LINODE_ACCESSKEY', variable: 'RANCHER_LINODE_ACCESSKEY')]) {
withEnv(paramsMap) {
stage('Checkout') {
deleteDir()
Expand Down Expand Up @@ -172,7 +176,11 @@ node {
stage("Build Environment") {
try {
sh "docker run -v ${validationVolume}:/root --name ${buildTestContainer} -t --env-file ${envFile} " +
"${imageName} sh -c \"${workPath}pipeline/scripts/setup_environment.sh\""
"${imageName} sh -c \"${workPath}pipeline/scripts/setup_environment.sh;${workPath}pipeline/scripts/build_qase_auto_testrun.sh\""

echo "Checking the current working directory and its contents"
echo "${workPath}"

} catch(err) {
sh "docker stop ${buildTestContainer}"
sh "docker rm -v ${buildTestContainer}"
Expand Down Expand Up @@ -227,12 +235,16 @@ node {
returnStdout: true
).trim()


jobs["$it-provisioning"] = {
stage("Parallel Provisioning: $it"){
def containerName = "${job_name}${env.BUILD_NUMBER}_$it-provisioning"
try {
echo "Starting provisioning tests. Getting qase run iD: "
sh "docker run --volumes-from ${buildTestContainer} --name ${containerName} -t -e CATTLE_TEST_CONFIG=\"${absoluteConfigPath}\" " +
"${imageName} sh -c \"gotestsum --format standard-verbose --packages=\"${testsDir}${testPackage}\" --junitfile ${testResultsOut} -- -tags=validation ${testCase} -timeout=\"60m\" -v\""
"${imageName} sh -c \"gotestsum --format standard-verbose --packages=\"${testsDir}${testPackage}\" --junitfile ${testResultsJSON} -- -tags=validation ${testCase} -timeout=\"60m\" -v\""



dir("./${patchedConfigsDir}") {
sh "docker cp ${containerName}:${rootPath}${configsDir}/$it ."
Expand Down Expand Up @@ -281,8 +293,12 @@ node {
try {
jobs = [:]


configFiles.each {
try {
sh "docker cp ${buildTestContainer}:${workPath}${qaseRun} ./"
sh "./${qaseRun} --startRun=true"

def configPath = "./${configsDir}/$it"
def configYaml = readFile(file: "./${patchedConfigsDir}/$it")

Expand All @@ -296,6 +312,12 @@ node {
returnStdout: true
).trim()

echo "Got the test run ID"
def testRunID = sh (
script: "./yq '.id' ./${testRunConfig}",
returnStdout: true
).trim()

def goValidationParams = [
string(name: 'TIMEOUT', value: "30m"),
text(name: 'CONFIG', value: configYaml),
Expand All @@ -304,6 +326,7 @@ node {
string(name: 'TEST_PACKAGE', value: "${testPackage}"),
string(name: 'TAGS', value: "${defaultTag}"),
string(name: 'GOTEST_TESTCASE', value: "${testCase}"),
string(name: 'QASE_TEST_RUN_ID', value: "${testRunID}"),
string(name: 'RKE_VERSION', value: "${env.RKE_VERSION}")
]

Expand All @@ -317,79 +340,81 @@ node {
} catch(err) {
echo "Pre upgrade tests had failures: " + err
}
sh "./${qaseRun} --startRun=false"
}
stage('Upgrade local cluster version') {
try {
def configPath = "./${configsDir}/${localConfigFileName}"
def configYaml = readFile(file: "./${patchedConfigsDir}/${localConfigFileName}")

def testCase = sh (
script: "./yq '.testCases.upgradeKubernetesTestCase' ${configPath}",
returnStdout: true
).trim()

def testPackage = sh (
script: "./yq '.testCases.upgradeTestCase' ${configPath}",
returnStdout: true
).trim()

def goValidationParams = [
string(name: 'TIMEOUT', value: "2h"),
text(name: 'CONFIG', value: configYaml),
string(name: 'REPO', value: "${rancherRepo}"),
string(name: 'BRANCH', value: "${branch}"),
string(name: 'TEST_PACKAGE', value: "${testPackage}"),
string(name: 'TAGS', value: "${defaultTag}"),
string(name: 'GOTEST_TESTCASE', value: "${testCase}" ),
string(name: 'RKE_VERSION', value: "${env.RKE_VERSION}")
]

build job: 'go-automation-freeform-job', parameters: goValidationParams
} catch(err) {
echo "Kubernetes upgrade tests had failures: " + err
}
}
stage('Run postupgrade checks') {
try {
jobs = [:]

configFiles.each {
try {
def configPath = "./${configsDir}/$it"
def configYaml = readFile(file: "./${patchedConfigsDir}/$it")

def testCase = sh (
script: "./yq '.testCases.postUpgradeTestCase' ${configPath}",
returnStdout: true
).trim()

def testPackage = sh (
script: "./yq '.testCases.upgradeTestCase' ${configPath}",
returnStdout: true
).trim()

def goValidationParams = [
string(name: 'TIMEOUT', value: "30m"),
text(name: 'CONFIG', value: configYaml),
string(name: 'REPO', value: "${rancherRepo}"),
string(name: 'BRANCH', value: "${branch}"),
string(name: 'TEST_PACKAGE', value: "${testPackage}"),
string(name: 'TAGS', value: "${defaultTag}"),
string(name: 'GOTEST_TESTCASE', value: "${testCase}"),
string(name: 'RKE_VERSION', value: "${env.RKE_VERSION}")
]

jobs["$it-postupgrade"] = { build job: 'go-automation-freeform-job', parameters: goValidationParams }
} catch(err) {
echo "Post upgrade $it had failures: " + err
}
}

parallel jobs
} catch(err){
echo "Post upgrade tests had failures: " + err
}
}
// stage('Upgrade local cluster version') {
// try {
// def configPath = "./${configsDir}/${localConfigFileName}"
// def configYaml = readFile(file: "./${patchedConfigsDir}/${localConfigFileName}")

// def testCase = sh (
// script: "./yq '.testCases.upgradeKubernetesTestCase' ${configPath}",
// returnStdout: true
// ).trim()

// def testPackage = sh (
// script: "./yq '.testCases.upgradeTestCase' ${configPath}",
// returnStdout: true
// ).trim()

// def goValidationParams = [
// string(name: 'TIMEOUT', value: "2h"),
// text(name: 'CONFIG', value: configYaml),
// string(name: 'REPO', value: "${rancherRepo}"),
// string(name: 'BRANCH', value: "${branch}"),
// string(name: 'TEST_PACKAGE', value: "${testPackage}"),
// string(name: 'TAGS', value: "${defaultTag}"),
// string(name: 'GOTEST_TESTCASE', value: "${testCase}" ),
// string(name: 'RKE_VERSION', value: "${env.RKE_VERSION}")
// ]

// build job: 'go-automation-freeform-job', parameters: goValidationParams
// } catch(err) {
// echo "Kubernetes upgrade tests had failures: " + err
// }
// }
// stage('Run postupgrade checks') {
// try {
// jobs = [:]

// configFiles.each {
// try {
// def configPath = "./${configsDir}/$it"
// def configYaml = readFile(file: "./${patchedConfigsDir}/$it")

// def testCase = sh (
// script: "./yq '.testCases.postUpgradeTestCase' ${configPath}",
// returnStdout: true
// ).trim()

// def testPackage = sh (
// script: "./yq '.testCases.upgradeTestCase' ${configPath}",
// returnStdout: true
// ).trim()

// def goValidationParams = [
// string(name: 'TIMEOUT', value: "30m"),
// text(name: 'CONFIG', value: configYaml),
// string(name: 'REPO', value: "${rancherRepo}"),
// string(name: 'BRANCH', value: "${branch}"),
// string(name: 'TEST_PACKAGE', value: "${testPackage}"),
// string(name: 'TAGS', value: "${defaultTag}"),
// string(name: 'GOTEST_TESTCASE', value: "${testCase}"),
// string(name: 'RKE_VERSION', value: "${env.RKE_VERSION}")
// ]

// jobs["$it-postupgrade"] = { build job: 'go-automation-freeform-job', parameters: goValidationParams }
// } catch(err) {
// echo "Post upgrade $it had failures: " + err
// }
// }

// parallel jobs
// } catch(err){
// echo "Post upgrade tests had failures: " + err
// }
// }
stage('Delete Rancher and resources') {
if (cleanup.toBoolean()) {
try{
Expand Down Expand Up @@ -453,4 +478,4 @@ node {
} // creds
} // folder properties
} // wrap
} // node
} // node
8 changes: 6 additions & 2 deletions tests/v2/validation/pipeline/qase/testrun/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ const (
)

var (
testRunName = os.Getenv(qasedefaults.TestRunNameEnvVar)
testRunName = "Anu test run"
qaseToken = os.Getenv(qasedefaults.QaseTokenEnvVar)
)

Expand All @@ -36,6 +36,8 @@ func main() {
cfg.AddDefaultHeader("Token", qaseToken)
client := qase.NewAPIClient(cfg)

logrus.Info("starting qase test run script.")

if *startRun {
// create test run
resp, err := createTestRun(client, testRunName)
Expand Down Expand Up @@ -72,11 +74,13 @@ func createTestRun(client *qase.APIClient, testRunName string) (*qase.IdResponse
fmt.Sprintf("%d", runSourceID): fmt.Sprintf("%d", recurringRunID),
},
}

idResponse, _, err := client.RunsApi.CreateRun(context.TODO(), runCreateBody, qasedefaults.RancherManagerProjectID)

if err != nil {
fmt.Println("Unable to create a test run, here's the error", err)
return nil, err
}
fmt.Println("Successfully created qase test run, here is the ID", idResponse.Result.Id)

return &idResponse, nil
}
Expand Down
13 changes: 12 additions & 1 deletion tests/v2/validation/pipeline/scripts/build_qase_auto_testrun.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,16 @@
set -e
cd $(dirname $0)/../../../../../

echo "Current directory after cd command:"
pwd

echo "building qase auto testrun bin"
env GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o tests/v2/validation/testrun ./tests/v2/validation/pipeline/qase/testrun
env GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o tests/v2/validation/testrun ./tests/v2/validation/pipeline/qase/testrun

if [ $? -ne 0 ]; then
echo "Failed to build Qase auto testrun binary" >&2
exit 1
else
echo "Successfully built Qase auto testrun binary"
ls tests/v2/validation/
fi

0 comments on commit 715506c

Please sign in to comment.