Je souhaite partager un fichier entre deux tâches et le modifier s'il y a des fichiers modifiés. Le script python compare le cache.json
fichier avec des changements et modifier le fichier cahce parfois.
.gitlab-ci.yaml
:
image: ubuntu
stages:
- test
cache:
key: one-cache
paths:
- cache.json
job1:
stage: test
script:
# - touch cache.json
- cat cache.json
- python3 modify_json_file.py
- cat cache.json
Le problème est que ce cache.json
le fichier n'existe pas lors de la prochaine exécution du travail. Je reçois le message d'erreur: cat: cache.json: No such file or directory
. J'ai également inséré une fois la commande tactile, mais cela ne change rien pour la prochaine exécution sans la commande tactile.
Dois-je quelque chose de mal ou ne comprends-je pas le cache
de gitlab?.
Je pense que vous avez besoin d'artefacts et non de cache.
De cache vs artefact :
cache - À utiliser pour le stockage temporaire des dépendances du projet. Pas utile pour conserver les résultats de construction intermédiaires, comme les fichiers jar ou apk. Le cache a été conçu pour être utilisé pour accélérer les appels des exécutions suivantes d'un travail donné, en conservant des éléments tels que les dépendances (par exemple, les packages npm, les packages du fournisseur Go, etc.) afin qu'ils n'aient pas à être récupérés à nouveau auprès du public. l'Internet. Bien que le cache puisse être utilisé abusivement pour transmettre des résultats de construction intermédiaires entre les étapes, il peut y avoir des cas où les artefacts sont mieux adaptés.
artefacts - À utiliser pour les résultats d'étape qui seront transmis entre les étapes. Les artefacts ont été conçus pour télécharger des bits compilés/générés de la construction, et ils peuvent être récupérés par un nombre illimité de Runners. Ils sont garantis disponibles et sont là pour transmettre des données entre les travaux. Ils sont également exposés pour être téléchargés à partir de l'interface utilisateur.