J'utilise Drone CI (0.7) dans un système auto-hébergé. C'est connecté à GitLab et à mon registre privé et ça fonctionne très bien!Drone CI obtenir et utiliser des métadonnées de construction
Cependant, je voudrais en faire plus avec le fichier .drone.yml
. Surtout lors de la publication d'images dans le registre.
Les documents montrent comment faire substitution, mais n'explique pas comment ces variables sont définies. Voici un exemple des documents:
pipeline:
docker:
image: plugins/docker
+ tags: ${DRONE_TAG}
C'est exactement ce que je voudrais faire. Créez un tag git sur le repo (sur la branche de publication) et faites en sorte que ce tag devienne le tag de mon image Docker.
J'ai essayé git tag -a v1.0 -m "Initial release"
puis git push origin v1.0
. La construction du CI Drone démarre car j'ai défini Tag Hooks
pour le référentiel, mais lorsque la génération est terminée et publie l'image dans le registre, la balise est définie sur latest
. Cela se produit également lorsque vous appuyez sur un changement de code normal.
Est-ce que quelque chose doit être fait avec la CLI, ou est-ce qu'il manque quelque chose dans mon fichier .drone.yml
(posté ci-dessous)? Il ressemble comme une variable d'environnement que je devrais définir, mais cela semble étrange d'avoir à définir (je suppose) juste avant de valider le code pour commencer une construction ...
Toute aide est appréciée !
pipeline:
build:
image: node:latest
commands:
- npm install
- npm test
docker:
image: plugins/docker
repo: private.registry.com/tester
registry: private.registry.com
secrets: [ docker_username, docker_password ]
tags: ${DRONE_TAG}
when:
branch: release
Nailed il! C'était le truc dont j'avais besoin. Je vous remercie! – BurtonR
Cool! Mais quelqu'un peut-il expliquer pourquoi '## v' peut supprimer le préfixe? –
@SiruiZhuang voir docs ici http://docs.drone.io/substitution/, en fait il peut être appliqué pour toutes les variables d'env et cela dépendra de votre cas d'utilisation particulier – jhernandez