TL;DR Wercker é uma plataforma de integração contínua, baseado em containers e focado em facilitar o build e deploy de aplicações na nuvem. Totalmente integrado com Github, BitBucket, Heroku, AWS e OpenShift, em questão de minutos e com apenas alguns cliques é possível configurar o build e deploy da sua aplicação. O serviço está em beta, permitindo repositórios privados grátis!
Como funciona
Cada vez que você faz um git push
, o Wercker recebe um sinal que houve atualização,
baixa o código do repositório, monta o ambiente do build definindo variáveis de ambiente,
rodando as migrations, etc, e executa os testes ou qualquer outro passo que você definir, como compilar os assets, etc.
Uma vez que o build execute com sucesso, fica disponível para deploy na plataforma que escolher, como Heroku ou AWS. Da mesma forma do build, o deploy consiste em passos definidos, como rodar o Capistrano ou fazer push no repositório do Heroku.
Durante as duas etapas deste processo de build e deploy, o Wercker ainda pode notificar seu HipChat ou Slack :)
Por que é diferente?
Existem vários serviços de CI com a mesma proposta, como o Travis ou o Codeship. Mas o Wercker permite total customização do ambiente do build e do deploy, uma vez que é baseado em containers.
Você pode escolher um container oficial para seu build, como Ubuntu com Ruby instalado, por exemplo, ou pode procurar um container disponibilizado por outro usuário no diretório do Wercker.
Mas se precisar de algo muito específico, você pode criar seu próprio container (ou box) com pacotes e serviços que desejar, versões, etc, e utilizá-lo no seu build. E você também pode disponibilizar este box no diretório do Wercker para outros usuários utilizarem!
Boxes
Um box é um ambiente virtual empacotado e versionado com pacotes e serviços necessários para executar o build. Em outras palavras, é o container “base” que rodará seu build.
Para utilizar um box, basta declarar no início do wercker.yml
:
1
|
|
Tem box para Ruby, Node.js, Go, Java/Android e até para Docker. Na prática, os boxes oficiais vão atender a maioria dos casos, mas você pode criar seu próprio box como desejar.
Para definir um box, basta criar um repositório com o arquivo wercker-box.yml
descrevendo a base
(Ubuntu, por exemplo), o provisionamento (Chef,
Puppet, etc, e adicioná-lo ao build pipeline do Wercker.
Uma vez que o build passar, é possível fazer o deploy para disponibilizá-lo no diretório do Wercker. Assim, é possível utilizar este box no processo de build da sua aplicação.
Mais informações: http://devcenter.wercker.com/articles/boxes/
Services
Serviços são boxes prontos disponibilizados pelo Wercker, como MySql, PostgreSql, MongoDB, Redis, etc. Em outras palavras, é um container configurado com um serviço ready to use.
Para utilizar um service, basta adicionar ao seu wercker.yml
:
1 2 3 4 |
|
Mais informações: http://devcenter.wercker.com/articles/services/
Steps
As steps são os “comandos” executados pelo Wercker no build ou deploy da aplicação, como
bundle-install
, database-migrate
, script
, etc.
Você pode utilizar as steps disponibilizadas pelo Wercker ou criar suas próprias steps, executando os comandos que julgar necessário no seu build ou deploy.
Para definir as steps do seu build, basta adicionar o wercker.yml
:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Mais informações: http://devcenter.wercker.com/articles/steps/
Deploy pipeline
O Wercker permite fazer o deploy da sua aplicação em vários PaaS como Heroku automaticamente ou definir o processo de deploy manualmente, utilizando o Capistrano ou executando um script de sua preferência.
Durante a processo de deploy, é possível definir chaves SSH específicas, variáveis de ambiente, etc.
Para configurar seu deploy, adicione ao wercker.yml
(por exemplo):
1 2 3 4 5 6 7 8 |
|
Mais informações: http://devcenter.wercker.com/articles/deployment/
#comofas?
O Wercker é legal, fácil, bla bla bla. Vamos à um exemplo prático, passo-a-passo, de como configurar seu projeto no Wercker, fazer o build e o deploy automaticamente no Heroku.
0 – Crie sua conta :)
1 – Escolha o repositório, adicione as chaves SSH, finalize;
2 – Adicione o arquivo wercker.yml
ao seu projeto, parecido com este:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Mais informações: http://devcenter.wercker.com/articles/werckeryml
3 – Dispare o build com git push
;
1 2 |
|
4 – Configure o deploy no Heroku:
5 – Dispare o build/deploy com git push
ou manualmente:
6 – \o/
Espalhe a palavra!
Fácil né? Não há mais choro desculpas para não utilizar um CI em seu projeto.
Configure seu projeto, tire um print screen do primeiro build com sucesso e Tuite para o @wercker para receber stickers de grátis!
Compartilhe este post! Dúvidas e sugestões nos comentários abaixo. Sucesso!