web-dev-qa-db-fra.com

quelle est la meilleure pratique de distribution de binaires à partir d'un projet github?

quelle est la meilleure pratique de distribution de binaires à partir d'un projet github?

Je peux penser à:

  • Créez un dossier bin dans votre projet où vous gardez une copie des binaires. Cependant, github est destiné à stocker du code source et non des binaires Stocker des binaires volumineux et changeant régulièrement peut être coûteux en espace disque et en bande passante?
  • Téléchargez une copie des fichiers binaires dans les pages github du projet, ou utilisez un site Web distinct pour l'hébergement de vos fichiers binaires. Cependant, ce n'est pas toujours faisable, et nécessite plus de travail (manuel) pour maintenir les binaires à jour, je préfère que les binaires soient mis à jour automatiquement ou avec une seule action.
69
Jos de Jong

Il est clair pour moi maintenant qu'il est important de ne pas stocker les binaires dans votre projet github lui-même. Ainsi, vous devrez stocker des fichiers binaires ailleurs. Les solutions possibles que j'ai rencontrées sont:

  • Stockez les binaires dans un sous-module séparé ( idée dalores ). Il est logique de les stocker dans vos projets pages github , que vous utilisez pour héberger le site Web de vos projets via github.
  • Si vous n'avez que quelques binaires ou fichier Zip uniquement, vous pouvez les télécharger sur github via Téléchargements -> Télécharger un nouveau fichier. Cette fonctionnalité est cependant assez limitée, vous ne pouvez pas placer de fichiers dans des dossiers structurés.
  • Dans le cas de Java, il existe des solutions comme Nexus pour gérer vos bibliothèques.
  • Stockez les binaires sur un site complètement séparé que vous hébergez vous-même
18
Jos de Jong

Depuis le 11 décembre 2012, la la fonction de téléchargement sur GitHub est obsolète . L'article Distribution de gros binaires recommande d'utiliser un service externe:

Nous recommandons Amazon S pour le stockage associé à CloudFront pour la diffusion via CDN ou d'autres services tels que SourceForge .


Cependant, depuis le 2 juillet 201 , vous pouvez maintenant définir une version .

Lancement , un flux de travail pour l'envoi de logiciels aux utilisateurs finaux.
Les versions sont des objets de première classe avec des journaux des modifications et des actifs binaires qui présentent un historique complet du projet au-delà des artefacts Git. Ils sont accessibles depuis la page d'accueil d'un référentiel:

homepage

  • Les versions sont accompagnées de notes de version et de liens pour télécharger le logiciel ou le code source.
  • Conformément aux conventions de nombreux projets Git, les versions sont liées aux balises Git. Vous pouvez utiliser une balise existante ou laisser les versions créer la balise lors de sa publication.
  • Vous pouvez également attacher des actifs binaires (tels que des exécutables compilés, des scripts minifiés, de la documentation) à une version . Une fois publiés, les détails de la version et les actifs sont disponibles pour tous ceux qui peuvent consulter le référentiel.

release

60
vitaut

Quel genre de binaires? Les binaires doivent provenir de la source à un moment donné, non?

Ajoutez donc la source qui construit ces binaires en tant que sous-module dans git. Ensuite, dans votre processus de génération, créez ces fichiers binaires avant de créer votre source. Le sous-module est synchronisé avec une version spécifique de la source que vous connaissez et qui fonctionne. Vous avez également l'avantage de pouvoir déboguer plus facilement puisque vous avez la source.

Sauf si les binaires sont des images, etc., stockez-les simplement.

Si l'espace est le problème, utilisez bitbucket car ils ont un espace illimité.

2
dalore