Para uno de mis proyectos que tengo en GitHub, quería construirlo como una imagen acoplable y enviarlo a mi concentrador acoplable. El proyecto es un sbt con una base de código Scala.
Así es como se define mi JenkinsFile:
#!groovy node { // set this in Jenkins server under Manage Jenkins > Credentials > System > Global Credentials docker.withRegistry('https://hub.docker.com/', 'joesan-docker-hub-credentials') { git credentialsId: '630bd271-01e7-48c3-bc5f-5df059c1abb8', url: 'https://github.com/joesan/monix-samples.git' sh "git rev-parse HEAD > .git/commit-id" def commit_id = readFile('.git/commit-id').trim() println comit_id stage "build" { def app = docker.build "Monix-Sample" } stage "publish" { app.push 'master' app.push "${commit_id}" } } }Cuando traté de ejecutar esto desde mi servidor Jenkins, aparece el siguiente error:
java.io.FileNotFoundException at jenkins.plugins.git.GitSCMFile$3.invoke(GitSCMFile.java:167) at jenkins.plugins.git.GitSCMFile$3.invoke(GitSCMFile.java:159) at jenkins.plugins.git.GitSCMFileSystem$3.invoke(GitSCMFileSystem.java:161) at org.jenkinsci.plugins.gitclient.AbstractGitAPIImpl.withRepository(AbstractGitAPIImpl.java:29) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.withRepository(CliGitAPIImpl.java:65) at jenkins.plugins.git.GitSCMFileSystem.invoke(GitSCMFileSystem.java:157) at jenkins.plugins.git.GitSCMFile.content(GitSCMFile.java:159) at jenkins.scm.api.SCMFile.contentAsString(SCMFile.java:338) at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:101) at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:59) at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:232) at hudson.model.ResourceController.execute(ResourceController.java:98) at hudson.model.Executor.run(Executor.java:404) Finished: FAILUREDado que esto se ejecuta dentro de una VM en Azure, pensé que la VM no podía llegar al exterior, pero parece que ese no es el caso, ya que pude ingresar a la VM y git pull del repositorio de Git. Entonces, ¿cuál es el problema aquí? ¿Cómo podría hacer que esto funcione?
para mí, desmarcar "pago ligero" solucionó el problema
Experimenté exactamente el mismo error. Mi configuración:
https://myJenkins/job/my-job/configure . En la parte inferior, consulte la sección Pipeline -> Additional Behaviours -> Check out into a sub-directory con Local subdirectory for repo establecido en, por ejemplo, my-sub-dir .Jenkinsfile termina en my-sub-dir/Jenkinsfile .Script path , configura la ubicación del Jenkinsfile para que Jenkins pueda iniciar la compilación. Puse my-sub-dir/Jenkinsfile como valor. Luego recibí la excepción que pegó en su pregunta. Lo arreglé configurando Script Path en Jenkinsfile . Si no especifica un subdirectorio para verificar, intente verificar dos veces los valores para Script Path .
Nota: tengo otra instancia de Jenkins en el trabajo. Allí tengo que especificar la Script Path incluido el subdirectorio de verificación personalizado (como se mencionó en Expectativa arriba).
IR A Trabajo-->Config-->Pipline y desmarque la casilla de verificación de pago ligero"
pago ligero: seleccionado, intente obtener el contenido del script Pipeline >directamente desde el SCM sin realizar un pago completo. La ventaja de este modo es su eficiencia; sin embargo, no obtendrá registros de cambios ni sondeos basados en el SCM. (Si usa el checkout scm durante la compilación, esto completará el registro de cambios e inicializará el sondeo). Además, los parámetros de compilación no se sustituirán en la configuración de SCM en este modo. Solo los complementos SCM seleccionados admiten este modo.