7 votes

Peut-on utiliser des noms de jobs dynamiques dans le fichier gitlab-ci.yml ?

Je dois migrer de jenkins vers gitlab et j'aimerais pouvoir utiliser des noms de jobs dynamiques afin d'avoir certaines informations directement dans le résumé du pipeline sans avoir à cliquer sur chaque job etc.... dans jenkins on peut voir immédiatement les paramètres passés à notre job et ce n'est pas le cas dans gitlab-ci.

Mon test runner étant sur Windows, j'ai essayé de définir le yml comme suit :

job_%myParam%:
  stage: build
  script:
    - set>varList.txt
  artifacts:
    paths:
    - varList.txt

Lorsque je commence mon travail avec %myParam%=true La variable n'est pas interprétée dans le nom du travail et prend donc le nom de job_%myParam% au lieu du nom attendu "job_true".

Est-ce possible ?

Merci :)

6voto

AltGr Points 131

Depuis gitlab 12.9, cela peut être fait en utilisant trigger et pipelines enfants - bien qu'un peu complexe :

Je cite l'exemple de la documentation de gitlab :

generate-config:
  stage: build
  script: generate-ci-config > generated-config.yml
  artifacts:
    paths:
      - generated-config.yml

child-pipeline:
  stage: test
  trigger:
    include:
      - artifact: generated-config.yml
        job: generate-config

Dans votre cas, vous mettriez la définition de job_%myParam% en job.yml.in puis avoir le script. generate-ci-config être par exemple sed "s/%myParam%/$PARAM/g" job.yml.in .

C'est probablement un peu trop pour un simple changement de nom, bien sûr, et il y aura un coût associé à l'étape supplémentaire ; mais cela répond à la question, et il peut être utile de faire plus, comme de commencer avec différentes versions du paramètre dans le même pipeline.

3voto

Non, il n'est pas possible d'avoir des noms de tâches dynamiques dans GitLab CI.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X