@@ -88,63 +88,15 @@ freeStyleJob('link-project') {
8888
8989 echo "Detected language: $LANG_DETECTED"
9090 echo "$LANG_DETECTED" > $WHANOS_DIR/detected_language.txt
91- ''' )
92-
93- systemGroovyCommand('''
94- import javaposse.jobdsl.plugin.*
95- import jenkins.model.*
96-
97- def projectName = build.buildVariableResolver.resolve("PROJECT_NAME")
98- def gitUrl = build.buildVariableResolver.resolve("GIT_URL")
99- def language = new File("detected_language.txt").text.trim().toLowerCase()
100- def baseImage = "whanos-${language}"
101-
102- def dslScript = """
103- folder('Projects') {
104- displayName('Projects')
105- description('Available projects in Whanos')
106- }
107-
108- freeStyleJob("Projects/${projectName}") {
109- displayName("${projectName}")
110- description("Linked project managed by Whanos")
111-
112- scm {
113- git {
114- remote {
115- url("${gitUrl}")
116- credentials('${build.buildVariableResolver.resolve("GIT_CREDENTIALS_ID")}')
117- }
118- branch('*/main')
119- }
120- }
12191
122- triggers {
123- scm('* * * * *') // every minute
124- }
125-
126- steps {
127- shell("echo Building ${projectName} using ${baseImage}")
128- shell("docker build -t ${projectName}:${language} --build-arg BASE_IMAGE=${baseImage} .")
129- shell('\'\'\'
130- #!/bin/bash
131- set -e
132- if [ -f whanos.yml ]; then
133- echo "Deploying \$ {projectName} to Kubernetes..."
134- kubectl apply -f whanos.yml
135- else
136- echo "No whanos.yml found, skipping deployment."
137- fi
138- \'\'\' )
139- }
140- }
141- """
142-
143- def dsl = new ExecuteDslScripts()
144- dsl.scriptText = dslScript
145- dsl.ignoreExisting = false
146- dsl.removeAction = javaposse.jobdsl.plugin.RemovedJobAction.IGNORE
147- dsl.run()
92+ # Copy DSL script to workspace
93+ ls -laR $WHANOS_DIR/infra/jenkins
94+ cp $WHANOS_DIR/infra/jenkins/project_job.groovy $WORKSPACE/project_job.groovy
14895 ''' )
96+ dsl {
97+ external(" project_job.groovy" )
98+ additionalClasspath(" project_job.groovy/lives" )
99+ ignoreExisting(false )
100+ }
149101 }
150102}
0 commit comments