Como fazer: enviar um repositório GitHub para os servidores de plugins do wordpress


21

Eu desenvolvo meu plugin no github, mas quando se trata de implantação, tenho que copiar minhas alterações no Wordpress SVN . Atualmente, faço isso manualmente e copio cada arquivo em cada diretório individualmente, mas isso consome tempo e é propenso a erros.

Eu já vi e experimentei alguns scripts, mas acho que devo executá-los incorretamente, pois eles cometem erros ou não copiam os arquivos corretamente.

Então, minha pergunta é: alguém conseguiu isso automaticamente? Em caso afirmativo, como você fez isso?

Obrigado!


Embora eu ache que essa é uma pergunta interessante e útil, ela também fica fora de escopo, pois é sobre a interação do Git e do Subversion e não há nada específico sobre o WordPress. Eu preciso pensar qual seria a melhor ação aqui ...
Rarst

Eu comecei a pergunta na meta para discutir este caso.
Rarst

@Rarst obrigado por isso, muito por perdê a questão
studioromeo

Respostas:


1

consulte este tutorial de um colega de trabalho da minha equipe: http://www.farbeyondprogramming.com/2011/09/81-how-to-deploy-a-wordpress-plugin-with-git-svn

mas ele não usa a solução, é mais fácil trabalhar em separado :(


Obrigado @bueltge. Então, estou certo ao pensar que ele voltou ao método manual?
precisa saber é o seguinte

4
Pelo amor de tudo que é santo, não siga as instruções nesse site. Se você repentinamente fizer centenas de commits ao nosso SVN, eu pessoalmente farei o objetivo da minha vida encontrá-lo e vencê-lo com um pau. Ou talvez apenas bani-lo do WordPress.org. ;) Confirme apenas a versão final, não todas e todas as suas alterações que você se comprometeu com o git. Nós valorizamos sua história, mas apenas uma história significativa. O problema com o git é que as pessoas cometem um monte de porcaria inútil, e não precisamos saber todas essas coisas, de um modo geral.
Otto

@Otto Lol! Não, eu só quero poder implantar minhas alterações no repositório SVN. Atualmente, faça isso sobrescrevendo arquivos manualmente no meu repositório svn, mas isso é tedioso e propenso a erros. Você tem alguma sugestão?
studioromeo 26/01

3
Fazer uma nova análise interativa de suas alterações no Git permitirá combiná-las em uma única confirmação de SVN. Mais informações sobre como fazer isso estão aqui: stackoverflow.com/questions/158514/…
Otto

1
@Otto " Eu não saberia, honestamente, não uso o Git. Acho irritante. " Pode ser respondido com outra citação (diretamente de você) " Pessoalmente, tornarei o objetivo da minha vida encontrar você e vencê-lo com um pau ":)
kaiser 26/01

1

Depois de ler essas respostas, enviei um dos meus plugins para o GitHub e escrevi um script release.sh . Esse script obtém uma verificação parcial do meu plugin em plugins.svn.wordpress.org usando --depth immediatese atualiza os arquivos em trunk/e assets/. Isso deve simplificar um envio periódico ao svn, usando o repositório wordpress.org para marcar lançamentos em vez de manter o histórico de desenvolvimento:

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

Uma versão mais genérica pode funcionar com uma variedade maior de plugins, manipular arquivos excluídos e atualizar automaticamente as tags svn com base nas tags git.


1

Consulte Como publicar um plug-in WordPress - Git no @EAMann para obter uma descrição detalhada.


Se você quiser fazer esse tipo de coisa, faça uma nova análise interativa e altere todas as confirmações a serem compactadas, para que você não faça dezenas de pequenas confirmações nos servidores SVN. Mais informações sobre como fazer isso estão aqui: stackoverflow.com/questions/158514/…
Otto

5
@Otto Embora eu compreenda totalmente o seu desejo de reduzir a carga do servidor :) Eu realmente gosto muito de commits atômicos se precisar depurar o código de outras pessoas. Hum ... um link automático para um repositório Git público com um histórico completo de consolidação pode ser um aprimoramento útil para o diretório do plug-in.
fuxia

3
Tenho que concordar com @Otto sobre isso. O SVN do WordPress.org deve realmente ser o repositório de lançamento, não o repositório de desenvolvimento.
MikeSchinkel 26/01

1

A pergunta era antiga, mas agora a solução já está disponível com ações do GitHub. Recentemente, o GitHub adicionou o Github Actions ao fluxo de trabalho automatizado do repositório GitHub.

E a conhecida empresa 10up criou o "Action WordPress Plugin Deploy".

É muito fácil de configurar. E como o @otto diz que não precisamos enviar cada alteração para svn, podemos definir a automação enquanto criamos uma nova tag no github.

Portanto, nosso plug-in do github envia automaticamente o código ao repositório do WordPress quando criamos uma nova tag de lançamento.

Links Úteis:


0

Eu não faço isso automaticamente, mas é bem simples:

Faça com que o SVN truck e o Git master façam check-out no mesmo diretório. Use o Git para quase tudo, como faria com qualquer projeto somente do Git.

Defina stable tagcomo trunke, quando estiver pronto para fazer um lançamento, marque-o no Git e empurre imediatamente para o tronco. Não se preocupe em enviar para o SVN /tags, pois seu histórico de versões é seguro no Git (e no Github).

É sobre isso.

Para limpá-lo, eu adiciono .svna .gitignore, e .git(e tests/, phpunit.xml, etc.) para ser ignorado por SVN.

Um script release.sh não seria nada além do seguinte (uma vez que o número da versão no código tenha sido atualizado e todos comprometidos com o Git):

git tag $1
svn ci -m"Release: $1"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.