Entender las etiquetas CI de Gitlab

He leído documentación, algunos artículos y puede que me llamen tonto, pero es la primera vez que trabajo con un concepto como este.

  • He registrado runner con la etiqueta "testing";
  • creado la etiqueta "testing" en gitlab
  • binded this runner, with particular project
  • También he añadido la misma etiqueta, por ejemplo "testing" en mi repositorio local.

¿PERO cómo es exactamente que la ejecución de mis trabajos depende de esas etiquetas? ¿Son necesarias todas estas operaciones? Si introduzco nuevo código en el repositorio, el archivo *.yml se ejecuta de todos modos, según he comprobado.

**¿Y si quiero ejecutar la compilación sólo cuando defino una versión en un commit?

IDK...

   git commit --tags "v. 2.0" -m "this is version 2.0" (probably not right)

Pero, por supuesto, debe ser universal, por lo que don't tiene que decir siempre, que la etiqueta a utilizar para activar el corredor, pero por ejemplo le permiten reconocer los valores numéricos.

**Como puedes ver, estoy bastante confundido... Si usted podría elaborar cómo exactamente etiquetas de trabajo, por lo que sería capaz de entender el concepto, yo estaría muy agradecido.

Solución

Las etiquetas para GitLab CI y las etiquetas para Git son dos conceptos diferentes.

Cuando escribes tu .gitlab-ci.yml, puedes especificar algunos trabajos con la etiqueta testing. Si hay disponible un ejecutor con esta etiqueta asociada, recogerá el trabajo.

En Git, dentro de tu repositorio, las etiquetas se usan para marcar una confirmación específica. A menudo se utiliza para etiquetar una versión.

Los dos conceptos pueden mezclarse cuando usas etiquetas (en Git) para iniciar tu pipeline en GitLab CI. En tu .gitlab-ci.yml, puedes especificar la sección only con tags.

Consulta la documentación de GitLab sobre etiquetas y only.

Un ejemplo es cuando empujas una etiqueta con git:

$ git tag -a 1.0.0 -m "1.0.0"
$ git push origin 1.0.0

Y un trabajo en .gitlab-ci.yml como este:

compile:
    stage: build
    only: [tags]
    script:
        - echo Working...
    tags: [testing]    

empezaría usando un runner con la etiqueta testing.

A mi entender, lo que falta en tus pasos es especificar la etiqueta testing a tu runner. Para ello, vaya en GitLab en su proyecto. Al lado de Wiki, haz click en Configuración. Ve a CI/CD Pipelines y ahí tienes tu(s) runner(s). Al lado de su Guid, haga clic en el icono del lápiz. En la siguiente página se pueden modificar las etiquetas.

Comentarios (2)

¿Son necesarias todas estas operaciones?

No, si sólo tienes un corredor, o si tienes muchos pero no te importa qué corredor ejecuta tu trabajo, entonces no tiene sentido etiquetar corredores/trabajos.

¿Y si quiero ejecutar la compilación sólo cuando defino una versión en un commit?

job:
  only:
    - tags
Comentarios (0)