Skip to content
Snippets Groups Projects
Commit 3d5800b1 authored by OZGCloud's avatar OZGCloud
Browse files

update static e2e build pipeline

parent 93d10d26
No related branches found
No related tags found
No related merge requests found
...@@ -388,18 +388,20 @@ String generateCypressConfig(String bezeichner, String testFolder, Integer dbPor ...@@ -388,18 +388,20 @@ String generateCypressConfig(String bezeichner, String testFolder, Integer dbPor
def config = readJSON file: 'cypress-ci.json' def config = readJSON file: 'cypress-ci.json'
def plutoDatabaseSecret = getPlutoDatabaseSecret(namespace); def plutoDatabaseSecret = getPlutoDatabaseSecret(namespace);
def decodedPassword = decodeString(plutoDatabaseSecret.password);
def parsablePassword = makePasswordUrlConform(decodedPassword);
config.baseUrl = "https://${bezeichner}.${env.CLUSTER_BASE_URL}" as String config.baseUrl = "https://${bezeichner}.${env.CLUSTER_BASE_URL}" as String
config.env.dbUrl = "mongodb://pluto-database-user:${decodeString(plutoDatabaseSecret.password)}@localhost:${dbPort}/admin?ssl=false&directConnection=true" as String config.env.dbUrl = "mongodb://${decodeString(plutoDatabaseSecret.username)}:${parsablePassword}@localhost:${dbPort}/admin?ssl=false&directConnection=true" as String
config.env.keycloakUrl = "https://${env.SSO_URL}/" as String config.env.keycloakUrl = "https://${env.SSO_URL}/" as String
config.env.keycloakRealm = namespace as String config.env.keycloakRealm = namespace as String
config.env.keycloakClient = "alfa" as String
config.env.sabineUuid = getKeycloakUuid(namespace, "sabine") as String config.env.sabineUuid = getKeycloakUuid(namespace, "sabine") as String
config.integrationFolder = "./src/integration/${testFolder}" as String
config.videosFolder = "./reports/${testFolder}/videos" as String config.videosFolder = "./reports/${testFolder}/videos" as String
config.screenshotsFolder = "./reports/${testFolder}/screenshots" as String config.screenshotsFolder = "./reports/${testFolder}/screenshots" as String
config.reporterOptions.reportDir = "./reports/${testFolder}/mochawesome-report" as String config.reporterOptions.reportDir = "./reports/${testFolder}/mochawesome-report" as String
config.specPattern = "src/e2e/${testFolder}/**/*.cy.{js,jsx,ts,tsx}" as String
config.env.put("search", getElasticsearchEnv(namespace)) config.env.put("search", getElasticsearchEnv(namespace))
config.env.put("userManager", getUserManagerEnv(namespace, dbPort)) config.env.put("userManager", getUserManagerEnv(namespace, dbPort))
...@@ -408,28 +410,31 @@ String generateCypressConfig(String bezeichner, String testFolder, Integer dbPor ...@@ -408,28 +410,31 @@ String generateCypressConfig(String bezeichner, String testFolder, Integer dbPor
sh "cat ${configName}" sh "cat ${configName}"
} }
return configName return "cypress-ci-"+testFolder+".config.ts"
} }
Map getPlutoDatabaseSecret(String namespace) { Map getPlutoDatabaseSecret(String namespace) {
return readJSON ( text: sh (script: "kubectl get secret pluto-database-admin-pluto-database-user -n ${namespace} -o jsonpath={.data}", returnStdout: true)) return readJSON ( text: sh (script: "kubectl get secret ozg-mongodb-admin-pluto-user -n ${namespace} -o jsonpath={.data}", returnStdout: true))
} }
Map getUserManagerEnv(String namespace, dbPort){ Map getUserManagerEnv(String namespace, dbPort){
def plutoDatabaseUserManagerSecret = getPlutoDatabaseUserManagerSecret(namespace); def userManagerDatabaseSecret = getUserManagerDatabaseSecret(namespace);
def decodedPassword = decodeString(userManagerDatabaseSecret.password);
def parsablePassword = makePasswordUrlConform(decodedPassword);
return [ return [
"dbUrl": "mongodb://user-manager-database-user:${decodeString(plutoDatabaseUserManagerSecret.password)}@localhost:${dbPort}/admin?ssl=false&directConnection=true" as String, "dbUrl": "mongodb://${decodeString(userManagerDatabaseSecret.username)}:${parsablePassword}@localhost:${dbPort}/admin?ssl=false&directConnection=true" as String,
"database": "user-manager-database" "database": "user-manager-database"
] ]
} }
Map getPlutoDatabaseUserManagerSecret(String namespace) { Map getUserManagerDatabaseSecret(String namespace) {
return readJSON ( text: sh (script: "kubectl get secret pluto-database-admin-user-manager-database-user -n ${namespace} -o jsonpath={.data}", returnStdout: true)) return readJSON ( text: sh (script: "kubectl get secret ozg-mongodb-admin-user-manager-user -n ${namespace} -o jsonpath={.data}", returnStdout: true))
} }
String getKeycloakUuid(realm, userName) { String getKeycloakUuid(realm, userName) {
def shScript = """curl -H 'Content-Type: application/json' \ def shScript = """curl -H 'Content-Type: application/json' \
-H 'Authorization: bearer ${getKeycloakAccessToken()}' \ -H 'Authorization: bearer ${getKeycloakAccessToken(realm)}' \
'https://${env.SSO_URL}/admin/realms/${realm}/users' 'https://${env.SSO_URL}/admin/realms/${realm}/users'
""" """
...@@ -444,12 +449,21 @@ String getKeycloakUuid(realm, userName) { ...@@ -444,12 +449,21 @@ String getKeycloakUuid(realm, userName) {
} }
} }
String getKeycloakAccessToken() { String getKeycloakAccessToken(String realm) {
withCredentials([usernamePassword(credentialsId: 'keycloak-ovh-cluster', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { userManagerApiUserCredentials = getUserManagerApiUserCredentials(realm)
def token = readJSON text: sh (script: 'curl -d "client_id=admin-cli" -d "username=$USER" -d "password=$PASSWORD" -d "grant_type=password" https://$SSO_URL/realms/master/protocol/openid-connect/token', returnStdout: true)
def token = readJSON text: sh (script: "set +x && curl -d \"client_id=admin-cli\" -d \"username=${userManagerApiUserCredentials.user}\" -d \"password=${userManagerApiUserCredentials.password}\" -d \"grant_type=password\" https://$SSO_URL/realms/$realm/protocol/openid-connect/token", returnStdout: true)
return token.access_token return token.access_token
} }
Map getUserManagerApiUserCredentials(String namespace) {
userManagerApiUserCredentials = readJSON ( text: sh (script: "kubectl get secret usermanagerapiuser-credentials -n ${namespace} -o jsonpath={.data}", returnStdout: true))
return [
"user": decodeString(userManagerApiUserCredentials.name),
"password": decodeString(userManagerApiUserCredentials.password)
]
} }
Void sendFailureMessage() { Void sendFailureMessage() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment