example - ¿Cómo puedo ejecutar el script Shell en Jenkinsfile?
pipeline when (4)
Estoy manteniendo un archivo de script de shell llamado urltest.sh
en /var/lib/jenkins
y ejecutando el archivo desde la compilación de jenkins
.
Cuando ejecuto la compilación, falla.
The Environment Variables are -
HOME - /var/lib/jenkins ;
JENKINS_HOME - /var/lib/jenkins
La salida de la consola viene como:
Started by user anonymous
Building in workspace /var/lib/jenkins/workspace/AutoScript
[AutoScript] $ /bin/sh -xe /tmp/hudson2777728063740604479.sh
+ sh urltest.sh
sh: 0: Can''t open urltest.sh
Build step ''Execute shell'' marked build as failure
Finished: FAILURE
Estoy confundido donde debería guardar el archivo de script de shell para que se ejecute.
Existe el Complemento de script administrado que proporciona una forma fácil de administrar los scripts de usuario. También agrega una acción de compilación que le permite seleccionar qué script de usuario ejecutar.
Las respuestas anteriores son correctas, pero aquí hay una forma más de hacer esto y algunos consejos:
Opción # 1 Vaya a su trabajo de Jenkins y busque "agregar paso de compilación" y luego simplemente copie y pegue el script allí
Opción # 2 Vaya a Jenkins y vuelva a hacer lo mismo "agregar paso de compilación", pero esta vez ponga la ruta completa para su script en el ejemplo: ./usr/somewhere/helloWorld.sh
Cosas a tener en cuenta / consejos:
- Variables de entorno: si su trabajo se está ejecutando al mismo tiempo, debe preocuparse por los problemas de concurrencia. Un trabajo puede establecer el valor de las variables de entorno y el siguiente puede usar el valor o realizar alguna acción basada en eso de manera incorrecta.
- Asegúrate de que todos los caminos estén completamente calificados
- Piense en el registro / var / log o en algún otro lugar para que también tenga algo a lo que ir en el servidor (opcional)
- Lo que pasa con la cuestión del espacio y los permisos, la falta de espacio y los problemas de permisos son muy comunes en el entorno de Linux
- Alerte y asegúrese de que su script / trabajo falla los trabajos jenkin cuando su script falla
Según la cantidad de visitas que tiene esta pregunta, parece que muchas personas la visitan para ver cómo configurar un trabajo que ejecute un script de shell.
Estos son los pasos para ejecutar un script de shell en Jenkins:
- En la página principal de Jenkins, seleccione Nuevo artículo .
- Ingrese un nombre de elemento como "mi trabajo de script de shell" y elija el proyecto Freestyle . Presiona OK
- En la página de configuración, en el bloque de compilación , haga clic en el menú desplegable Agregar paso de compilación y seleccione Ejecutar shell .
En el área de texto puede pegar un script o indicar cómo ejecutar un script existente. Así que puedes decir:
#!/bin/bash echo "hello, today is $(date)" > /tmp/jenkins_test
o solo
/path/to/your/script.sh
Haga clic en Guardar .
Ahora el nuevo trabajo creado debería aparecer en la página principal de Jenkins, junto con los otros. Ábralo y seleccione Construir ahora para ver si funciona. Una vez que haya terminado, seleccione esa compilación específica del historial de compilación y lea el resultado de la consola para ver si todo sucedió como se desea.
Puede obtener más detalles en el documento github.com/softwaresaved/build_and_test_examples/blob/master/… en GitHub.
Si ve su mensaje de error dice
Creación en el espacio de trabajo / var / lib / jenkins / workspace / AutoScript
y según sus comentarios, ha puesto urltest.sh en
/ var / lib / jenkins
Por lo tanto, Jenkins no puede encontrar el archivo. En tu paso de compilación haz esto, funcionará.
cd # which will point to /var/lib/jenkins
./urltest.sh # it will run your script
Si aún falla, intente chown el archivo ya que el usuario jenkin puede que no tenga permiso de archivo, pero creo que si lo hace en el paso anterior podrá ejecutarlo.