Estoy usando Jenkins para activar y administrar una serie de trabajos de importación. Quiero poner mi script de importación en Github, y cuando Jenkins construya el trabajo, debería (a) extraer ese script controlado por la versión de Github y (b) ejecutar el script.
El problema con el que me estoy encontrando es que no sé cómo hacer referencia al nombre del script que se ejecutará dentro del trabajo. Supongo que el código fuente se extrae en el directorio del espacio de trabajo. ¿Es correcta esa suposición? (¡Si solo hubiera documentación!)
Esto es lo que he hecho hasta ahora:
- Instalé Jenkins (obviamente) en mi servidor de Windows (no, no tuve otra opción al respecto)
- Creé un repositorio en mi cuenta de github y puse mi código en él
- Es público en https://github.com/mcholl/SARS-Import/
- Verás que tengo dos scripts, roottest.py y omniture-video \ test.py. El código está bajo patente de Apple, estoy seguro :)
- La idea es que me gustaría ejecutar roottest.py
- Instalado el complemento de Github
- Creó un trabajo de la siguiente manera:
- Nombre del proyecto = "Prueba de integración de Github"
- Proyecto GitHub: https://github.com/mcholl/SARS-Import.git/
- Agregue un comando por lotes de Windows: python roottest.py
- Ejecuta el trabajo manualmente
Sin embargo, lo que aparece es un mensaje de error que indica que el archivo no se puede ubicar. Esto es extraño, porque supongo que el flujo de trabajo sería "extraer una copia local de la fuente al directorio ... (Trabajo) / workspace /, luego ejecutar el comando por lotes en el contexto del directorio del espacio de trabajo.
Aquí está la salida de la consola completa:
Iniciado por el usuario anónimo Compilación en el espacio de trabajo C: \ Archivos de programa (x86) \ Jenkins \ jobs \ Testing Github Integration \ workspace [espacio de trabajo] $ cmd / c llamada C: \ Windows \ TEMP \ hudson1966342425043540895.bat
C: \ Archivos de programa (x86) \ Jenkins \ jobs \ Testing Github Integration \ workspace> python roottest.py python: no se puede abrir el archivo 'roottest.py': [Errno 2] No existe tal archivo o directorio
C: \ Archivos de programa (x86) \ Jenkins \ jobs \ Testing Github Integration \ workspace> exit 2 Paso de compilación 'Ejecutar comando por lotes de Windows' marcado compilación como falla Finalizado: FALLO
Obviamente esperaba ver los resultados de mi declaración impresa en la consola.
¿Qué me equivoqué? ¿Y por qué mi guión ya no está allí?
Respuestas:
Para mi compilación (en un host Linux), hago algo como esto (como un paso de compilación en Jenkins) para ejecutar un script de compilación desde el espacio de trabajo recién revisado:
Ejecutar comando de shell:
Supongo que funcionaría de manera similar en Windows, excepto que, por supuesto, usaría \ en lugar de / y está usando python en lugar de sh para ejecutar su script.
fuente
Puede escribir dos líneas en su compilación:
fuente
Puede almacenar algún script en Git, por ejemplo, test.sh:
Luego, en la entrada "Ejecutar shell", coloque la importación de ese script y llame a "_test_func":
Resultado:
fuente