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 Wordpress SVN . Actuellement, je le fais manuellement et copie chaque fichier de chaque répertoire individuellement, mais cela prend du temps et est source d'erreurs.
J'ai vu et essayé quelques scripts, mais je pense que je dois les avoir mal exécutés car ils sont soit erronés, soit ne copient pas correctement les fichiers.
Donc, ma question est de savoir si quelqu'un a réalisé cela automatiquement et si oui, comment l'avez-vous fait?
Merci!
Voir Comment publier un plugin WordPress - Git from @EAMann pour une description détaillée.
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 extrait partiellement mon plugin de plugins.svn.wordpress.org en utilisant --depth immediates
, et met à jour les fichiers au format trunk/
et assets/
. Cela devrait simplifier une publication périodique Push to 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 à partir des balises git.
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 :(
Je ne le fais pas automatiquement, mais c'est assez simple:
Faites extraire le camion SVN et le maître Git dans le même répertoire. Utilisez Git pour presque tout, comme avec tout projet exclusivement Git.
Définissez le stable tag
sur trunk
, puis, lorsque vous êtes prêt à créer une release, marquez-le dans Git puis appuyez immédiatement sur le tronc. Ne craignez pas de passer à SVN /tags
, car votre historique de publication est sécurisé dans Git (et Github).
C'est à peu près ça.
Pour le nettoyer, j'ajoute .svn
à .gitignore
et .git
(et tests/
, phpunit.xml
, etc.) pour être ignorés par SVN.
Un script release.sh ne serait en réalité que ce qui suit (une fois que le numéro de version dans le code a été mis à jour et que tous les éléments ont été validés pour Git):
git tag $1
svn ci -m"Release: $1"