deploy-templates/templates/job-provisions-configmap-registry-regulations.yaml (52 lines of code) (raw):
kind: ConfigMap
apiVersion: v1
metadata:
name: {{ .Values.jenkins.registryRegulationsJobProvisionerName }}
labels:
{{- include "jenkins-operator.metaLabels" . | nindent 4 }}
data:
context: |
import groovy.json.*
import jenkins.model.Jenkins
import javaposse.jobdsl.plugin.*
import com.cloudbees.hudson.plugins.folder.*
import hudson.model.*
import java.util.zip.GZIPInputStream
import java.util.zip.GZIPOutputStream
def unzip(String compressed) {
def inflaterStream = new GZIPInputStream(new ByteArrayInputStream(compressed.decodeBase64()))
def uncompressedStr = inflaterStream.getText('UTF-8')
return uncompressedStr
}
def scriptText = new String(Base64.decoder.decode('{{ .Files.Get "JobProvisionerRegistryRegulations.groovy" | b64enc }}'))
def jobName = "{{ .Values.jenkins.registryRegulationsJobProvisionerName }}"
def folderName = "job-provisions"
def ciFolderName = "ci"
def folder = Jenkins.instance.getItem(folderName)
if (folder == null) {
folder = Jenkins.instance.createProject(Folder.class, folderName)
}
def ciFolder = folder.getItem(ciFolderName)
if (ciFolder == null) {
ciFolder = folder.createProject(Folder.class, ciFolderName)
}
def project = ciFolder.getItem(jobName)
if (project == null) {
project = ciFolder.createProject(FreeStyleProject, jobName)
}
project.getBuildersList().clear()
executeDslScripts = new ExecuteDslScripts()
executeDslScripts.setScriptText(scriptText)
project.getBuildersList().add(executeDslScripts)
def definitionList = [new StringParameterDefinition("NAME", ""),
new StringParameterDefinition("TYPE", ""),
new StringParameterDefinition("BUILD_TOOL", ""),
new StringParameterDefinition("BRANCH", ""),
new StringParameterDefinition("GIT_SERVER_CR_NAME", ""),
new StringParameterDefinition("GIT_SERVER_CR_VERSION", ""),
new StringParameterDefinition("GIT_CREDENTIALS_ID", ""),
new StringParameterDefinition("REPOSITORY_PATH", ""),
new StringParameterDefinition("JIRA_INTEGRATION_ENABLED", "")]
project.addProperty(new ParametersDefinitionProperty(definitionList))
project.setConcurrentBuild(true)
project.save()