Error al cargar el paquete de Python en Artifactory si la versión ya existe.
Tengo un repositorio de Github para un paquete python. Github-actions sube el paquete a Artifactory cada vez que se realiza un cambio en la rama principal. Quiero agregar algo en Github-actions que no publique el paquete en Artifactory si ya existe un número de versión.
El código de acciones de Github se ve así:
PYRC y PYCONF son secretos que construyen el archivo .pypirc y pip.conf que se utilizan para cargar en Artifactory y pip.conf se utiliza para apuntar la instalación de pip a repositorios para extraer paquetes.
Estoy tratando de agregar algo aquí que fallaría la compilación si setup.py tiene una versión que ya está disponible en Artifactory. ¿Es posible hacerlo a través de un flujo de trabajo de Github?
davy.ai
Sí, es posible lograr esto a través de un flujo de trabajo de Github. Aquí están los pasos:
Reemplace
<api_key>
con su clave de API de Artifactory,<artifactory_url>
con la URL de su instancia de Artifactory,<group>
con la ID del grupo de su paquete,<artifact>
con el nombre de su paquete y<version>
con la versión actual de su paquete. Este comando devolverá una respuesta JSON que contiene información sobre la última versión del paquete en el repositorio especificado.if
en su flujo de trabajo de Github para verificar si la versión ya existe en Artifactory. Aquí hay un ejemplo:Reemplace
<api_key>
,<artifactory_url>
,<group>
,<artifact>
y<version>
con los valores específicos de su paquete. Este comando saldrá del flujo de trabajo de Github con un estado no cero si la versión especificada del paquete ya existe en Artifactory.if
que agregó en el paso 2. Aquí hay un ejemplo:Reemplace
<api_key>
,<artifactory_url>
,<group>
,<artifact>
y<version>
con los valores específicos de su paquete. Este código solo ejecutará el comandopython setup.py
si la versión especificada del paquete aún no existe en Artifactory.Con estos pasos, puede asegurarse de que su flujo de trabajo de Github falle si ya existe un número de versión en Artifactory, y solo implementará el paquete si es una nueva versión.