Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

175
Vistas
Aumente el número de versión si Travis en github tuvo éxito

Escribí un script simple en Python.

Ahora me gustaría que travis revise mi código. Después de que travis tuvo éxito, el número de versión debería aumentar.

Hasta ahora, mi script aún no tiene un número de versión. Puedo almacenarlo en cualquier lugar donde tenga sentido para el flujo de trabajo de incremento automático.

¿Cómo hacer esto para el código de Python?

Actualizar

Ahora funciona:

  1. ejecutar pruebas
  2. versión de golpe
  3. empujar la etiqueta al maestro

Desafortunadamente, travis no admite "después de todo". Esto significa que si quiero ejecutar las pruebas para varias versiones de Python, no tengo forma de cambiar la versión después de que las pruebas de todas las versiones de Python hayan sido exitosas.

En mi caso, revisaré Python2.7 solo hasta que Travis resuelva este problema: https://github.com/travis-ci/travis-ci/issues/929

Aquí está mi script simple: https://github.com/guettli/compare-with-remote

Resuelto :-)

Ahora funciona:

  1. El desarrollador empuja a github
  2. Carreras de Travis-CI
  3. Si todas las pruebas son exitosas, bumpversion aumenta la versión.
  4. La nueva versión en setup.py se envía al repositorio de github
  5. Una nueva versión del paquete python se carga en pypi con la herramienta twine .

Explico la forma en que hago CI con github, travis y pypi aquí: https://github.com/guettli/github-travis-bumpversion-pypi

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Si acepta tener un compromiso adicional para su control de versiones, puede agregar este script en continuous_integration/increment_version.py

 import os import pkg_resources if __name__ == "__main__": version = pkg_resources.get_distribution("compare_with_remote").version split_version = version.split('.') try: split_version[-1] = str(int(split_version[-1]) + 1) except ValueError: # do something about the letters in the last field of version pass new_version = '.'.join(split_version) os.system("sed -i \"s/version='[0-9.]\+'/version='{}'/\" setup.py" .format(new_version)) os.system("git add -u") os.system("git commit -m '[ci skip] Increase version to {}'" .format(new_version)) os.system("git push")

Y cambia tu .travis.yml a

 after_success: - python continuous_integration/increment_version.py

No estoy seguro de cómo hacer que la parte de git push funcione, ya que necesita algunas pruebas con los derechos de repositorio, pero supongo que probablemente podría configurar algo para permitir que travis empuje su repositorio. Podrías mirar esa publicación , por ejemplo.

También tenga en cuenta que usé python para realizar las operaciones de git , pero se pueden agregar como una línea adicional en el campo after_success :

 after_success: - python continuous_integration/increment_version.py - git add -u - git commit -m "[ci skip] version changed" - git push

Me parece conveniente poner el número de versión en el mensaje de confirmación.

Además, es muy importante agregar [ci skip] en el mensaje de confirmación para evitar un incremento infinito. Tal vez sería más seguro activar el cambio de versión en una etiqueta de mensaje de confirmación específica.

over 4 years ago · Santiago Trujillo Denunciar

0

No es específico de Python, pero este tutorial explica los números de versión de incremento automático agregando entradas .travis.yaml que actualizan las etiquetas de git con cada compilación exitosa. Parece un buen equilibrio entre el control de versiones manual y automático.

Si bien el tutorial usa el package.json de npm para la verificación de la versión inicial, podría implementar un equivalente simple (en Python o de otro modo).

over 4 years ago · Santiago Trujillo Denunciar

0

Asumiendo que,

  • solo las confirmaciones con compilaciones exitosas de Travis CI se fusionan en la rama maestra (por ejemplo, usando solicitudes de extracción)
  • el paquete siempre se instala con pip desde un repositorio git usando, por ejemplo,

     pip install git+https://github.com/user/package.git

Para el número de versión de incremento automático, uno podría simplemente definir la versión como el número de confirmaciones en la rama maestra. Esto se puede hacer con las siguientes líneas en setup.py ,

 minor_version = check_output(['git', 'rev-list', '--count', 'master']).decode('latin-1').strip() setup(version='0.{}'.format(minor_version), ...)
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda