Comment spécifier les sous-répertoires d'artéfacts de Joker.gitlab-ci.yml?
J'utilise GitLab CI pour construire une solution C# et essayer de passer quelques artefacts de construction d'une étape à l'autre.
le problème est que les artefacts ne sont pas localisés dans un seul répertoire mais dans des sous-répertoires différents, qui ont cependant tous les mêmes noms bin/
ou obj/
.
Mon .gitlab-ci.yml
ressemble à ce qui suit:
...
stages:
- build
- test
build:
stage: build
script:
CALL %MSBuild% ...
artifacts:
paths:
- /**/bin/
- /**/obj/
expire_in: 6 hrs
test:
stage: test
dependencies:
- build
...
j'ai essayé de capturer les artéfacts en utilisant différents voies, p.ex.
**/bin/
**/obj/
(syntaxe non valide), ou
.*/bin/
.*/obj/
mais qu'on n'a pas trouvé d'artefacts, tout comme /**/bin/
et /**/obj/
, me donnant les erreurs suivantes:
Uploading artifacts...
WARNING: /**/bin/: no matching files
WARNING: /**/obj/: no matching files
Comment puis-je spécifier un motif de sous-répertoire à balayer à la recherche d'artefacts? Ou est-ce même possible?
utilisation simple
artifacts:
untracked: true
n'est pas une option, à cause d'un énorme sous-répertoire packages/
non suivi, qui fait échouer le téléchargement d'artefacts à cause d'une archive trop grande:
Uploading artifacts...
untracked: found 4513 files
ERROR: Uploading artifacts to coordinator... too large archive id=36 responseStatus=413 Request Entity Too Large token=...
FATAL: Too large
1 réponses
le gitlab-ci-multi-runner build runner est construit en utilisant Go et utilise actuellement filepath.Glob () pour rechercher tout artefact spécifié dans file_archiver.allez .
Go ne semble pas soutenir l'expression double étoile glob comme discuté dans une autre question ici à SO. Donc il semble qu'il n'y ait aucun moyen d'utiliser un **/bin
expression à l'instant .
parce que cependant tous mes projets sont situés au même niveau sous la solution root, il est encore possible d'utiliser quelque chose comme
artifacts:
paths:
- "*/bin"
- "*/obj"
notez que les guillemets ( "
) semblent nécessaires, ainsi que Non séparateur de sillon de fuite à la fin.
Il devrait également être possible d'ajouter explicitement plus de niveaux en ajoutant plus d'expansion expressions (comme décrit ici ):
paths:
...
- "*/obj"
- "*/*/bin"
- "*/*/obj"
...