Saltar al contenido

Cómo ejecutar scripts de python locales en la interfaz de usuario de Jenkins

Estate atento ya que en esta sección hallarás el resultado que buscas.

Solución:

Cree un trabajo de Jenkins y ejecute sus scripts como script de shell desde el trabajo de jenkins. Como esto

#!/bin/sh
python .py

en lugar de manejar el archivo de script local en cada servidor, en realidad puede copiar todo el script de python en el “shell de ejecución” en la sección Build. tiene que comenzar con el shebang de python relevante. Por ejemplo:

#!/usr/bin/env python
your script...

también puede agregar parámetros en el trabajo y usar variables de entorno en su secuencia de comandos de python. por ejemplo

parameter1 = os.environ['parameter1']

Otra forma es creando pipeline y ejecutar sh comando, que apunta a su secuencia de comandos de python. También puede pasar parámetros a través de la interfaz de usuario de Jenkins como mencionó dsaydon en su respuesta.

sh El comando puede ser el siguiente (es como si lo ejecutara en la línea de comandos):

sh 'python.exe myscript.py'

Paso de canalización de ejemplo con la creación de un nuevo entorno virtual y la ejecución de un script después de la instalación de todos los requisitos

stage('Running python script')
sh      '''
        echo "executing python script"
        "'''+python_exec_path+'''" -m venv "'''+venv+'''" && "'''+venv+'''\Scripts\python.exe" -m pip install --upgrade pip && "'''+venv+'''\Scripts\pip" install -r "'''+pathToScript+'''\requirements.txt" && "'''+venv+'''\Scripts\python.exe" "'''+pathToScript+'''\my_script.py" --path "'''+PathFromJenkinsUI+'''"
        '''

dónde

sh ''' 
   your command here
   ''' 

significa comando de shell multilínea (si realmente lo necesita)

También puede pasar variables de su canalización (groovy-script) a sh comando y, en consecuencia, a su secuencia de comandos de python como argumentos. usar de esta manera '''+argument_value+''' (con tres comillas y más alrededor del nombre de la variable)

Ejemplo: su secuencia de comandos de python acepta un argumento opcional path y desea ejecutarlo con un valor específico que le gustaría ingresar en su interfaz de usuario de Jenkins. Entonces su comando de shell en el script maravilloso debería ser el siguiente:

// getting parameter from UI into `pathValue` variable of pipeline script
// and executing shell command with passed `pathValue` variable into it.

pathValue = getProperty('pathValue') 
sh '"\pathTo\python.exe" "my\script.py" --path "'''+pathValue+'''"' 

Sección de Reseñas y Valoraciones

Si para ti ha sido de provecho nuestro post, sería de mucha ayuda si lo compartieras con el resto juniors de este modo contrubuyes a extender este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *