Je construis un flux de travail avec Gitlab , Jenkins et - probablement - Nexus (j'ai besoin d'un stockage d'artefacts). Je voudrais avoir GitLab pour stocker versions/binaires - est-ce possible d'une manière commode?
Je ne voudrais pas avoir un autre service à partir duquel une version (et une documentation) puisse être téléchargée, mais l'intégrer d'une manière ou d'une autre avec le gestionnaire de référentiel, tout comme les versions sont gérées, par exemple. GitHub. Des indices?
Mise à jour nov. 2015: GitLab 8.2 prend désormais en charge les versions .
Avec son API, vous pouvez maintenant créer et mettre à jour une version associée à une balise .
Pour le moment, seule la possibilité d’ajouter des notes de publication (texte de démarcation et pièces jointes) aux balises git (aka Releases).
Réponse originale en mars 2015
Ceci est en cours et suggéré dans suggestions 4156755 :
Nous acceptons les demandes de fusion pour la proposition minimale de Ciro:
- Pour chaque balise de référentiel sous https://github.com/cirosantilli/test/releases/tag/3.0 , autoriser le chargement et le téléchargement d'une liste de fichiers.
- Le téléchargement et le téléchargement peuvent être effectués directement à partir de la vue Liste des balises.
- Si un tag est supprimé, les téléchargements sont détruits . (nous n'acceptons pas le message tag modifier mentionné dans les commentaires récents)
Les commentaires à cette suggestion incluent:
Ce qui le rend plus intéressant est la prochaine étape.
Je voudrais vraiment un moyen de laisser les artefacts de téléchargement public de "releases" sans pouvoir accéder au code source (par exemple, rendre les sources privées pour l'équipe de projet uniquement, à l'exception de tout autre élément tel que wiki, "releases", suivi des problèmes).Cependant, cette fonctionnalité supplémentaire semble plus générique et I a soumis une demande de fonctionnalité distincte pour cela .
Néanmoins, je répète mon point ici:
Bien que la version simpliste de "releases" soit toujours agréable, de nombreuses personnes peuvent facilement configurer un serveur de fichiers externe et pointer des URL dans la description des release/tags vers ce serveur en dehors de GitLab.
En d'autres termes, les "versions" peuvent ne pas sembler attrayantes maintenant sans une image future de l'intégration.
Gitlab (serveur) lui-même est destiné aux référentiels git. Vous n'êtes pas censé stocker les fichiers binaires dans git. Nexus serait la solution. Vous pouvez ajouter un lien vers Nexus dans la description de votre référentiel ou dans le fichier Lisez-moi (comme vous pouvez y indiquer votre version de jenkins).
Vous voudrez peut-être jeter un coup d’œil sur l’intégration continue de GitLab qui s’intègre à Gitlab. Cela semble être plus quelque chose comme Jenkins. Je ne sais pas si cela vient avec un stockage de données comme Nexus.
Nous utilisons scp
pour copier des fichiers, tels que des fichiers binaires ou des rapports, générés dans GitlabCI.
# capture test exit code
set +e
bash build/ci/test.sh; TESTS_EXIT_CODE=$?
set -e
# copy reports
sshpass -p "$SFTP_PASS" ssh -o StrictHostKeyChecking=no [email protected] "mkdir -p ${CI_REPORTS_PATH}"
sshpass -p "$SFTP_PASS" scp -r ${CI_APP_VOLUME}/tests/_output/* [email protected]:${CI_REPORTS_PATH}
# return test exit-code
exit ${TESTS_EXIT_CODE}