diff --git a/goofy-client/apps/goofy-e2e/Jenkinsfile b/goofy-client/apps/goofy-e2e/Jenkinsfile index f18859763fb525d9357b9ccc8e4da0e1efe493fb..586479131ed089585cbe9bb6c214c413d3aa1d9f 100644 --- a/goofy-client/apps/goofy-e2e/Jenkinsfile +++ b/goofy-client/apps/goofy-e2e/Jenkinsfile @@ -5,11 +5,134 @@ pipeline { } } + triggers { + upstream(upstreamProjects: getUpstreamProjects(), threshold: hudson.model.Result.SUCCESS) + } + stages { - stage("Hello") { + stage("Clone Gitops Repo") { steps { - echo "Hello World!" + cloneGitopsRepo() } } + + stage("Init Default Versions") { + steps { + script { + initEnvGoofyDefaultVersions() + initEnvPlutoDefaultVersions() + initEnvUserManagerDefaultVersions() + } + } + } + + stage("Set User Versions") { + when { + beforeInput true + triggeredBy cause: "UserIdCause" + } + steps { + script { + userVersions = input message: "Edit Default Values", + parameters: [ + string(name: "GoofyImageTag", defaultValue: env.GOOFY_IMAGE_TAG, trim: true), + string(name: "GoofyHelmChartVersion", defaultValue: env.GOOFY_HELM_CHART_VERSION, trim: true), + string(name: "PlutoImageTag", defaultValue: env.PLUTO_IMAGE_TAG, trim: true), + string(name: "PlutoHelmChartVersion", defaultValue: env.PLUTO_HELM_CHART_VERSION, trim: true), + string(name: "UserManagerImageTag", defaultValue: env.USER_MANAGER_IMAGE_TAG, trim: true), + string(name: "UserManagerHelmChartVersion", defaultValue: env.USER_MANAGER_HELM_CHART_VERSION, trim: true) + ] + + initEnvUserVersions(userVersions) + } + } + } + + stage("Print Versions") { + steps { + script { + println "GOOFY_IMAGE_TAG: ${env.GOOFY_IMAGE_TAG}" + println "GOOFY_HELM_CHART_VERSION: ${env.GOOFY_HELM_CHART_VERSION}" + println "PLUTO_IMAGE_TAG: ${env.PLUTO_IMAGE_TAG}" + println "PLUTO_HELM_CHART_VERSION: ${env.PLUTO_HELM_CHART_VERSION}" + println "USER_MANAGER_IMAGE_TAG: ${env.USER_MANAGER_IMAGE_TAG}" + println "USER_MANAGER_HELM_CHART_VERSION: ${env.USER_MANAGER_HELM_CHART_VERSION}" + } + } + } + } +} + +String getUpstreamProjects() { + if (isMasterBranch() || isReleaseBranch()){ + return "goofy/${env.BRANCH_NAME},pluto/${env.BRANCH_NAME},user-manager/${env.BRANCH_NAME}" } + + return "goofy/${env.BRANCH_NAME}" +} + +Boolean isReleaseBranch() { + return env.BRANCH_NAME == 'release' +} + +Boolean isMasterBranch() { + return env.BRANCH_NAME == 'master' +} + +def cloneGitopsRepo() { + withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) { + sh 'git clone https://${USER}:${TOKEN}@git.ozg-sh.de/mgm/gitops.git' + } +} + +Map getApplicationValues(String application) { + def applicationValues = readYaml file: "gitops/${getEnvironment()}/application/values/${application}-values.yaml" + + return applicationValues.get(application.replaceAll("-", "_")) +} + +String getEnvironment() { + if (isReleaseBranch()) { + return "test" + } + + return "dev" +} + +String getImageTag(Map applicationValues) { + return applicationValues.image.tag +} + +String getHelmChartVersion(Map applicationValues) { + return applicationValues.helm.version +} + +Void initEnvGoofyDefaultVersions() { + goofyValues = getApplicationValues("goofy") + + env.GOOFY_IMAGE_TAG = getImageTag(goofyValues) + env.GOOFY_HELM_CHART_VERSION = getHelmChartVersion(goofyValues) +} + +Void initEnvPlutoDefaultVersions() { + plutoValues = getApplicationValues("pluto") + + env.PLUTO_IMAGE_TAG = getImageTag(plutoValues) + env.PLUTO_HELM_CHART_VERSION = getHelmChartVersion(plutoValues) +} + +Void initEnvUserManagerDefaultVersions() { + userManagerValues = getApplicationValues("user-manager") + + env.USER_MANAGER_IMAGE_TAG = getImageTag(userManagerValues) + env.USER_MANAGER_HELM_CHART_VERSION = getHelmChartVersion(userManagerValues) +} + +Void initEnvUserVersions(userVersions) { + env.GOOFY_IMAGE_TAG = userVersions.GoofyImageTag + env.GOOFY_HELM_CHART_VERSION = userVersions.GoofyHelmChartVersion + env.PLUTO_IMAGE_TAG = userVersions.PlutoImageTag + env.PLUTO_HELM_CHART_VERSION = userVersions.PlutoHelmChartVersion + env.USER_MANAGER_IMAGE_TAG = userVersions.UserManagerImageTag + env.USER_MANAGER_HELM_CHART_VERSION = userVersions.UserManagerHelmChartVersion } \ No newline at end of file