Comment: envoyer un dépôt GitHub aux serveurs de plugins wordpress


21

Je développe mon plugin sur github mais en ce qui concerne le déploiement, je dois en quelque sorte copier mes modifications dans le SVN Wordpress . Actuellement, je fais cela manuellement et copie individuellement chaque fichier de chaque répertoire, mais cela prend du temps et est source d'erreurs.

J'ai vu et essayé quelques scripts mais je pense que je dois les exécuter mal car ils font une erreur ou ne copient pas correctement les fichiers.

Donc, ma question est: est-ce que quelqu'un y est parvenu automatiquement et si oui, comment l'avez-vous fait?

Merci!


Bien que je pense que c'est une question intéressante et utile, elle tombe également hors de portée car il s'agit de l'interaction de Git et Subversion et il n'y a rien de spécifique à WordPress. Je dois penser à ce qui serait la meilleure action ici ...
Rarst

J'ai commencé la question sur la méta pour discuter de ce cas.
Rarst

@Rarst merci pour cela, désolé d'avoir égaré la question
studioromeo

Réponses:


1

voir ce tutoriel d'un collègue de mon équipe: http://www.farbeyondprogramming.com/2011/09/81-how-to-deploy-a-wordpress-plugin-with-git-svn

mais il n'utilise pas la solution, c'est plus facile de travailler séparément :(


Merci @bueltge. Ai-je donc raison de penser qu'il est revenu à la méthode manuelle?
studioromeo

4
Pour l'amour de tout ce qui est saint, ne suivez pas les instructions sur ce site. Si vous faites soudainement des centaines de commits à notre SVN, je vais personnellement faire de ma vie le but de vous trouver et de vous battre avec un bâton. Ou peut-être simplement vous interdire de WordPress.org. ;) Veuillez ne valider que la version finale, pas chacune de vos modifications que vous vous êtes engagé à git. Nous apprécions votre histoire, mais seulement une histoire significative. Le problème avec git est que les gens commettent des tas de conneries inutiles, et nous n'avons pas besoin de tout savoir, en général.
Otto

@Otto Lol! Non, je veux simplement pouvoir déployer mes modifications dans le référentiel SVN. Actuellement, remplacez manuellement les fichiers dans mon référentiel svn extrait, mais c'est fastidieux et sujet aux erreurs. Avez-vous des suggestions?
studioromeo

3
Faire un rebase interactif de vos modifications Git vous permettra de les combiner en un seul commit SVN. Plus d'informations sur la façon de procéder sont ici: stackoverflow.com/questions/158514/…
Otto

1
@Otto " Je ne sais pas, honnêtement, je n'utilise pas Git. Je trouve ça ennuyeux. " Peut être répondu par une autre citation (directement de vous) " Je vais personnellement faire de ma vie le but de vous trouver et de vous battre avec un bâton ":)
kaiser

1

Après avoir lu ces réponses, j'ai poussé l'un de mes plugins vers GitHub et écrit un script release.sh . Ce script obtient une extraction partielle de mon plugin à partir de plugins.svn.wordpress.org en utilisant --depth immediateset met à jour les fichiers dans trunk/et assets/. Cela devrait simplifier une poussée périodique vers svn, en utilisant le référentiel wordpress.org pour baliser les versions plutôt que de conserver l'historique de développement:

./release.sh
svn cp trunk tags/0.6
svn ci "Sending 0.6 from https://github.com/foo/bar to wordpress.org"

Une version plus générique pourrait fonctionner avec une plus grande variété de plugins, gérer les fichiers supprimés et mettre à jour les balises svn automatiquement en fonction des balises git.


1

Voir Comment publier un plugin WordPress - Git de @EAMann pour une description détaillée.


Si vous voulez faire ce genre de chose, veuillez effectuer un rebase interactif, puis modifiez toutes les validations à écraser, afin de ne pas effectuer des dizaines de petites validations sur les serveurs SVN. Plus d'informations sur la façon de procéder sont ici: stackoverflow.com/questions/158514/…
Otto

5
@Otto Bien que je comprenne parfaitement votre souhait de réduire la charge du serveur :) J'aime vraiment, vraiment les commits atomiques si je dois déboguer le code d'autres personnes. Hm… un lien automatique vers un dépôt Git public avec un historique de commit complet pourrait être une amélioration utile pour le répertoire du plugin.
fuxia

3
Je dois être d'accord avec @Otto à ce sujet. Le SVN de WordPress.org devrait vraiment être le référentiel de publication, pas le référentiel de développement.
MikeSchinkel du

1

La question était ancienne mais maintenant la solution est désormais disponible avec les actions GitHub. Récemment, GitHub a ajouté Github Actions, le flux de travail automatisé pour le référentiel GitHub.

Et la société bien connue 10up a créé le "Action WordPress Plugin Deploy".

C'est très simple à installer. Et comme le dit @otto, nous n'avons pas besoin de pousser chaque modification vers svn, nous pouvons donc définir l'automatisation lors de la création d'une nouvelle balise sur github.

Ainsi, notre plugin github envoie automatiquement le code au référentiel WordPress lorsque nous créons une nouvelle balise de version.

Liens utiles:


0

Je ne le fais pas automatiquement, mais c'est assez simple:

Faites vérifier le camion SVN et le maître Git dans le même répertoire. Utilisez Git pour presque tout, comme vous le feriez avec n'importe quel projet Git uniquement.

Définissez le stable tagêtre trunk, puis lorsque vous êtes prêt à faire une version, marquez-le dans Git, puis appuyez immédiatement sur le tronc. Ne vous inquiétez pas de passer à SVN /tags, car votre historique de versions est sûr dans Git (et Github).

C'est à peu près ça.

Pour nettoyer, ajouter .svnà .gitignore, et .git(et tests/, phpunit.xml, etc.) pour être ignoré par SVN.

Un script release.sh ne serait vraiment rien de plus que ce qui suit (une fois que le numéro de version dans le code a été mis à jour, et tout est validé pour Git):

git tag $1
svn ci -m"Release: $1"
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.