OFF-TOPIC - Fazer deploy automático da aplicação após commit no git

33 views
Skip to first unread message

Felipe Menegheli Moreira

unread,
Jun 24, 2015, 1:02:03 PM6/24/15
to yii-framew...@googlegroups.com
Boa tarde galera.

Agora que me sobrou um tempo, gostaria de saber como vocês publicam seus fontes para o servidor de produção.

Hoje vivo um pesadelo, onde após commitar os arquivos no git, me conecto no servidor de produção via sftp, e vou jogando os arquivos alterados, um a um, e de vez em quando, acabo esquecendo de jogar um arquivo no servidor.

Poderia utilizar alguma IDE com integração com o git e conexão sftp, mas para isso, teria que trabalhar em cima dos fontes do repositório, o que não acho bom, porque depois tenho que ficar descartando os arquivos que não quero commitar.

Hoje utilizo uma ferramenta Meld, que faz comparão de arquivos e diretórios, então, após as alterações, sempre comparo o fontes que eu trabalhei com os do repositório, e sobrescrevo as diferenças, e depois publico conforme dito acima.

Ficaria bem feliz em saber como vocês fazem, e acho que seria de grande valor para todos os membros do grupo, afinal, sempre há novas formas de realizar esta atvidade e podemos nos atualizar com as procedimentos dos colegas.


--

Felipe Menegheli Moreira
Programador

Gestão de Materiais e Processos

--------------------------------------

Telefone: +55 (27) 3343-2071

www.el.com.br



Leandro

unread,
Jun 24, 2015, 1:39:01 PM6/24/15
to yii-framew...@googlegroups.com

--
YFB - Yii Framework Brasil
04/2011: Anexos de até 250kb foram autorizados pelos membros da lista. Use com moderação.
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-br...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/CAEFXmH1PP8d1FxXLRtM3fKPpbFWTmKWKjerAXDB53nm4rYgqgQ%40mail.gmail.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Sidney

unread,
Jun 24, 2015, 5:21:46 PM6/24/15
to yii-framew...@googlegroups.com
Neste aspecto, diria que estou na moda antiga (e estou bem, obrigado. :)

Embora eu gerencie todo o código com o Git (e bitbucket), ainda não me adaptei muito ao deploy/instalação via git e alguns outros que já testei (e pra ser sincero não senti necessidade ainda). Alguns deles, na minha opnião, complicam o que é simples. No meu caso, simplesmente faço tudo o que tenho de fazer e no final subo tudo pro servidor via RSYNC, uma ferramenta de linha de comando do Linux extremamente rápida.

Nas mudanças de versão, repito o processo já que o próprio rsync gera um controle pra identificar quais arquivos foram modificados e só atualiza esses arquivos específicos no server.

OBS: às vezes preciso ajustar algum index.php no server depois do upload. Quando isso é necessário, crio uma lista de arquivos excluídos do upload para que esses arquivos não sejam enviados.

Enfim, não tenho do que reclamar. Hoje isso me atende de maneira excelente e é uma das virtudes do PHP, na minha opinião.

Atenciosamente,
Sidney Lins
------

Fábio Sales

unread,
Jun 24, 2015, 8:15:28 PM6/24/15
to yii-framew...@googlegroups.com
Felipe,

Boa noite, 

Eu trabalho com o SVN e gero o deploy através de um shell script. Basicamente, passo como parametros a url do repositorio, a revisao inicial e a final. Desta forma, o script gera apenas os arquivos que foram alterados no intervalo das revisões. Acredito que para o GIT deve haver algo semelhante.   

Atenciosamente,

Fábio Sales
Analista de tecnologia da informação
www.desenvolvemos.net

Felipe Menegheli Moreira

unread,
Jun 25, 2015, 7:13:09 AM6/25/15
to yii-framew...@googlegroups.com
Valeu gente.

Obrigado por compartilhar.

Sidney, também uso linux, vou dar uma olhada no RSYNC.

Fábio, nem sabia que em shell script dava para fazer esse tipo de coisa, vou dar uma olhada e ver o que me atende melhor.




Para mais opções, acesse https://groups.google.com/d/optout.



--

Felipe Menegheli Moreira

unread,
Jun 25, 2015, 10:00:00 AM6/25/15
to yii-framew...@googlegroups.com
Quanto poder o RSYNC têm!

Ele vai me atender perfeitamente.

Obrigado mais uma vez por compartilhar o procedimento de vocês.

Valeu gente!

Sidney

unread,
Jun 25, 2015, 12:19:33 PM6/25/15
to yii-framew...@googlegroups.com
Blz Felipe,

Se ajudar, segue o comando que utilizo:

rsync -arvz --progress --exclude-from=rsync-exclude-list --chmod=755 . cm:~/public_html
(Geralmente deixo um alias, tipo rsync-site-tal, salvo no .bash_aliases pra n ter que regiditar tudo)

Onde:
   -arvz = basicamente envia tudo (ou somente o que foi modificado), recursivamente;
   --exclude-from = o arquivo com regras pra pular arquivos na hora do upload
   . = diretorio atual
   cm:~/public_html = o destino (cm: é um alias ssh que tenho salvo, mas poderia ser o endereço ftp/ssh completo)

Abraço



Atenciosamente,
Sidney Lins
------

Felipe Menegheli Moreira

unread,
Jun 25, 2015, 2:11:45 PM6/25/15
to yii-framew...@googlegroups.com

Cálcio

unread,
Jun 26, 2015, 8:48:46 AM6/26/15
to yii-framew...@googlegroups.com
Aproveitando o post...

Eu tenho uma baita dúvida sobre oq subir no git e oq colocar no .gitignore. Existe alguma regra básica ou alguma receita de bolo?
O que devo enviar para meu host em produção?

Alisson Chrystian Campelo

unread,
Jun 26, 2015, 2:27:16 PM6/26/15
to yii-framew...@googlegroups.com
O tópico ajudou muito... eu estava fazendo usando scp ... mas via rsync é bem mais simples mesmo. Vlw

Carlos Alexandre Zucolli

unread,
Jul 3, 2015, 7:34:42 PM7/3/15
to yii-framew...@googlegroups.com
Boa noite Pessoal,

Aproveitando as dúvidas postadas, e como eu nunca consigo usar o Git direito, resolvi usar a solução do Sidney com o rSync...

Eu coloco o rSync pra comparar 2 pastas assim:

rsync -av --update --delete /Volumes/User/Applications/MAMP/htdocs/site/ /Volumes/ZUCOLLI/site/


Isso é uma cópia num PenDrive...

E parece que copia tudo novamente, está certo?


Qual seria a melhor maneira? Ter o site em um único lugar? Pra conseguir acessar os arquivos e programar sem os arquivos atuais?



Obrigado.


Carlos



Em quarta-feira, 24 de junho de 2015 14:02:03 UTC-3, Felipe Moreira escreveu:

diego nunes

unread,
Jul 8, 2015, 10:59:00 AM7/8/15
to yii-framew...@googlegroups.com
    Gente, se vocês não estão usando deploy automatizado, não é mais fácil criar uma deploy key, acessar o server e dar um "git pull && composer install" ou coisa assim? Não é o processo ideal, mas já que vai ter que conectar no server, que seja usando um processo one-liner sem muita interação e possibilidade de erro.

    Como dica, façam SEMPRE o seguinte: em vez de atualizar o deploy que está em produção, criem um symlink ("deploy") para uma pasta com o deploy atual ("deploy-20150710101010"). Aí é fácil fazer um script que:
1) duplica a pasta do deploy e dá o nome dela usando o timestamp "deploy-20150715074523";
2) acessa essa pasta e dá "git pull && composer install" dentro dela;
3) aponta o symlink "./deploy" para a nova pasta.

    Dessa forma você tem versionamento de deploys e consegue rapidamente voltar ao build anterior. Também, em caso de erro no processo (imagina que a conexão caiu no meio do processo, ou o servidor do git falhou, sei lá), você não fica com um deploy pela metade e não quebra o seu build por causa disso.

--
YFB - Yii Framework Brasil
04/2011: Anexos de até 250kb foram autorizados pelos membros da lista. Use com moderação.
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-br...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.



--
diego nunes
dnunes.com

Almir Bolduan

unread,
Jul 8, 2015, 11:57:39 AM7/8/15
to yii-framew...@googlegroups.com
Boa tarde pessoal,

Eu uso o repositório (Subversion) da hospedagem (Kinghost) para guardar os dados do meu projeto. Lá tem uma funcionalidade que exporta os itens para uma pasta específica conforme eu vou dando "commit".  Conforme vou liberando as alterações, a hospedagem atualiza tudo sozinho.  Uso isso a uns 7 meses e nunca tive problemas.

Valeu!
Almir
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-brasil+unsub...@googlegroups.com.



--
diego nunes
dnunes.com

Cesar Albuquerque

unread,
Jul 9, 2015, 10:45:01 PM7/9/15
to yii-framew...@googlegroups.com
Eu utilizo o capistrano para fazer o deploy para mim.
Tem integração com o git..posso escolher se faço deploy a partir de branch, comit ou tag.
Posso fazer configurações e scripts (ruby). E robusto, mas dá para automatizar praticamente tudo!

Att
César Albuquerque

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-br...@googlegroups.com.



--
diego nunes
dnunes.com

--
YFB - Yii Framework Brasil
04/2011: Anexos de até 250kb foram autorizados pelos membros da lista. Use com moderação.
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-br...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/3ce52d73-c5f5-4b89-a808-e6d3e247a2db%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages