pipeline {
environment {
RELIV_API_KEY = credentials('reliv-api-key') // Use Jenkins credentials
}
stages {
stage('Trigger Reliv Tests') {
steps {
script {
def response = sh(
script: "curl -s -X POST 'https://api.reliv.ai/api/v0/test-run-sets' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ${env.RELIV_API_KEY}' \
-d '{\"env\": \"default\"}'",
returnStdout: true
).trim()
def responseJson = readJSON text: response
env.TEST_RUN_SET_ID = responseJson.testRunSetId
}
}
}
stage('Check Reliv E2E Test Status') {
steps {
script {
timeout(time: 10, unit: 'MINUTES') {
while (true) {
def response = sh(
script: "curl -s -X GET 'https://api.reliv.ai/api/v0/test-run-sets/${env.TEST_RUN_SET_ID}' \
-H 'Authorization: Bearer ${env.RELIV_API_KEY}'",
returnStdout: true
).trim()
def responseJson = readJSON text: response
if (responseJson.status == 'SUCCESS') {
echo 'Test Status: SUCCESS'
break
} else if (responseJson.status == 'FAIL') {
error('Test Status: FAIL')
} else {
echo "Test Status: ${responseJson.status}. Waiting for completion..."
sleep time: 10, unit: 'SECONDS'
}
}
}
}
}
}
}
}