Estoy tratando de crear un sistema de versiones que se aumente automáticamente cada vez que se envía una confirmación a la rama maestra. Creé una variable de entorno a través de Configuración-> CI / CD-> Variables de entorno e intenté incrementarla usando el siguiente código:

   old_version = os.environ["SEMVER_VERSION"]
   new_version = bump(old_version)
   os.environ["SEMVER_VERSION"] = new_version 

El problema es que estos cambios solo se realizan en una copia local de la variable de entorno que se descarta cuando finaliza la canalización. Entonces, mi pregunta es si hay alguna forma de almacenar un valor para que todas las tuberías puedan acceder y cambiarlo.

Una solución común para esto parece ser almacenar el valor en etiquetas git o un archivo que luego se devuelve al repositorio git, el tutorial que seguí hizo esto https://threedots.tech/post/automatic-semantic-versioning-in-gitlab-ci/, pero puedo ' Impulsar confirmaciones programáticamente debido a restricciones en el servidor de gitlab autohospedado que estoy usando.

0
David 26 sep. 2019 a las 11:56

1 respuesta

La mejor respuesta

Puede actualizar la misma variable con el nuevo valor mediante la API :

curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \ 
"https://gitlab.example.com/api/v4/projects/1/variables/SEMVER_VERSION" \ 
--form "value=$new_version"
0
Nicolas Pepinster 26 sep. 2019 a las 09:30