Série Continuous Integration: Build a partir da Tag Github

jenkinslogo

Olá Pessoal,

O post de hoje vamos ver como fazer um build no Jenkins a partir de uma tag  do Github. Vou considerar que você já como configurar o seu job no Jenkins com o Git/Github.

Lets go…

 

Starting…

Uma hora você vai precisar fazer um build de uma tag, versão estável. Então como fazer isso  no Jenkins?Você pode pensar que é apenas informar */tags/nomedatag É bem simples veja os passos:

Passo 1

Instale o plugin Git parameter Plugin no Jenkins

Passo 2

Marque a  opção  : This build is parameterized. Vou considerar que você já tem a tag criada no seu repositório Github

jenkinstaggithub

Agora preencha conforme a imagem acima, observe que no campo tag filter, é o nome da tag que você deu. Em Branch coloque */tags

Passo 3

Agora em source code  management deixei conforme a imagem a seguir:

jenkinsgittagsource

O ponto mais importante aqui é informar em branch o parâmetro ${tag} que acabamos de crair no passo anterior.

Passo 4

Salve as alterações

Passo 5

Clique em Build with parameter  e escolha a tag que acabou de criar.

jenkinsgithubcheckouttag

Pronto agora é aguardar o build ser concluído e verificar no console  que o código está sendo baixado a partir da tag

Vou ficando por aqui e espero que tenham gostado do post.

Abraços, see ya!!

Série Continuous Integration: Criando uma tag no github via Jenkins

 

jenkinslogo

olá Pessoal,

Hoje vamos ver como criar uma tag em nosso projeto e publicar no github. Considerando que você já tem o seu ambiente Jenkins funcionando.

Lets go..
Starting…

Primeiro passo é instalar o plugin Git Publisher.

Passo 2

Após ter instalado o plugin vá no seu projeto e clique em configuration. Em sourceCode Management clique em Advanced

jenkinsgittagsourcecode

No campo Name que deve está vazio, informe o nome que desejar, eu coloco o nome do projeto.

Passo 3

Adicione um Post-build Actions Step e escolher Git Publisher

jenkinsgitpublisher

Observe que podemos ter um create new tag ou update new tag. Se for uma nova tag escola create new tag. Informe em Tag to Push como será o nome da sua tag.

O ponto mais importante aqui que temos é informar o repositorio que é feito em Target remote name onde informar o nome que definimos nos campo Name em source
code.

Passo 4

Feito isso, salve as alterações e iniciei o build. Após a conclusão do build a tag será criada no github, vá no repositorio e veja se a tag foi criada em
releases

jenkinstaggithubreleased

Simples não? Agora vc tem a criação de tags para o github automatizada.

abraços,

Retrospectiva 2014

2014_3

olá Pessoal,

Como todo ano faço sempre uma retro. Esse ano não será diferente. Vamos lá?

Retrospectiva 2014

Esse ano foi de fato desafiador. Desafios a cada dia foi o que não faltou. Paro e olho para os outros 11 meses tenho história para cada um deles seja superação pessoal como profissional. Particularmente a única coisa gosto no final do ano é vc ter esse tempo para fazer uma reflexão na sua vida e como  foi esse  “1 ano” que teve e que jamais vai voltar, pois o tempo é irreversível.

E as metas que fizemos no final de 2013?

É eu posso dizer que esse ano foi um dos pontos que pouco dei atenção aquelas famosas listas, tabelas que fazemos com o que queremos atingir.Simplesmente eu tinha um plano, mas havia outro e que não estava nada alinhado com o que estava ali no papel e tive que me adaptar, entender e seguir em frente. Aprendi que ter metas mais curtas que permitam trazer maior valor para sua vida é melhor que ter aquelas metas de médio e longo prazo que muitas vezes passam a ser incertas. E vc se perde no meio do caminho e quando menos espera perdeu o foco. Então tudo que escrevi para em 2013 para 2014  joguei fora e comecei uma nova historia com metas mais simples e atingiveis. O fato de ser simples não quer dizer que é fácil. Ser simples pra mim, é ser objetivo e saber exatamente o que quer no final. Certamente quando temos metas complexas é pq nosso objetivo com aquilo não está bem definido.

 E o profissional?

Esse ano profissionalmente posso considerar como um dos melhores que já tive. Realmente muito aprendizado, dedicação e persistência. Há 1 ano e meio deixei o mundo corporativo nas multinacionais e me dediquei ao empreendorismo (pela terceira vez, após ter fracassado 2 vezes anos atras) e por uma naturalidade além do projeto inicial que é a ITSLabs, onde somos uma espécie de aceleradora para start-up, buscamos projetos que resolvem problemas de verdade para o mercado, sociedade e ajudamos investindo junto com o empreendedor permitindo que a ideia saia do papel e entre em operação de maneira sólida.Até desenharmos esse modelo quebramos muito a cabeça e cara também. Mas, trabalhamos bastante, tanto que não conseguimos ter o nosso site. E aprendi quando você não tem tempo para fazer o seu back-office significa que está bom, pelo menos acredita que o tempo usado foi para fazer novos negócios, pelo menos por aqui foi assim. Com todo esse envolvimento nasceu a Usecash que é um novo meio de pagamento através do troco, que antes se chamava itroco, mas após estudos de mercado e estrategia mudamos o nome. E isso tudo nos gerou dois negócios que não estava no plano, mas que nos proporcionou uma grande experiência, conheci executivos que jamais imaginei conhecer ou até almoçar.Colocamos no ar a ideia da Gabriela fundadora do DiveDoo, primeira cliente da ITSLabs (no novo modelo de negócio). E antes de terminar o ano fechamos mais 2 novos projetos para 2015. Ufa! A pergunta é quanto vale tudo isso? Não é possível detakgar  o que tem nesse ciclo, aqui é tudo resumido, mas é um desafio diario, que tem inicialmente mais dias “ruins” que “bons”. Porém, os dias ruins te levam a novos caminhos e soluções.

Ter participado do TDC  foi algo sensacional, curto o evento há muito tempo e ter contribuindo é algo  que não consigo mensurar.

O pessoal?

Do lado pessoal, tirando a falta de tempo para ficar com minha familia, onde tem sido algo bem limitado e pontual.Afinal eu moro em SP e eles na Bahia. Acredito que meus desejos pessoais estão bem. Dizem por ai que devemos ter profissional x pessoal. Eu particularmente, não consigo separar essas diferenças de desejo. Eu entendo que estão interligados e servem como ponto de equilibrio. Se vc tem esses dois mundos separados acredito que há alguma coisa não bem definida no que vc faz. E como disse é preciso ter o equilibrio e unir os dois para que seja um só. Senão, gera infelicidade. E aprendi muito bem fazer esse equilibrio, apesar da agenda cheia, as oportunidades surgem e vc deve aproveitar. Se hoje surgiu um espaço para ir ficar com a familia ou sair com os amigos e nem que seja por um limite de 2-4 hrs, vá e faça. Se tem esse espaço, é pq é preciso ser feito para ter o equilibrio necessário entre os dois mundos pessoal & profissional.

E o blog?

Eu digo que não foi um ano como gostaria para o blog camilolopes.com.Com o aumento de trabalho e alteração das prioridades devido a prazos etc. E trabalhando media de 20hrs/dia foi dificil arrumar um espaço para escrever um post como gosto. Não adianta sair escrevendo, é preciso pensar, refletir, validar se faz sentido etc. E quando eu escrevo tem diversos fatores por tras tais como sentimento, motivação, empolgação etc. É preciso unir tudo isso para transmitir o que deseja de maneira simples que possa agregar na vida de quem for ler o post. Espero que em 2015 eu consiga melhorar um pouco a frequência de publicação, dificilmente será como antes, onde tinha uma média de 3 posts novos por semana. Isso sei que não é mais possível, mas pelo menos 1 post por semana é meu desejo.

E aqui vai um resumo:

1. AngularJS:Nossa aqui foi animal, venho aprendendo AngularJS desde meados de 2013. E resolvi compartilhar cada aprendizado que ia tendo com o framework  no formato de série.  Hoje com dois projetos em produção tenho bastante coisa que ainda não coloquei no ar,  mas espero que em 2015 consiga.

2. Série Scrum:Vimos uma série de posts sobre Scrum, mas nada explicando o que é o framework, isso já tem na internet há 10 anos.Resolvi compartilhar a nossa experiência no dia a dia e problemas que tivemos e como resolvemos.

3. TDC 2014:Tive o prazer de participar da edição 2014 e espero participar no próximo ano. Foi excelente compartilhar a experiência da ITSLabs com projetos remoto  usando Scrum. Rola ou não rola?

4. UseCash: Conheça o novo meio de pagamento que vai mudar a forma de você carregar o dinheiro. Não se trata apenas de uma nova bandeira como opção de pagamento, e sim um novo conceito de como gerenciar o dinheiro com segurança.

5. ITSLabs  – Github:Temos o nosso repositorio no Github com projetos que achamos importante compartilhar com a comunidade. Inclusive criamos archetype maven para Java + AngularJS.

6. EasyJavaDropbox: Na ITSLabs criamos uma framework EasyJavaDropbox que nos permite usar mais facilmente o dropbox em projetos Java. Fiz alguns posts explicando o uso. Temos planos de evoluir API em 2015 .

Aproveitei o recesso do final do ano e já comecei a escrever alguns drafts. E no ano de 2015, pretendo ter alguns posts não técnicos, voltado para area de empreendorismo, compartilhando um pouco a minha experiência com vocês, muitos falam e ostentam, mas vamos ver o dia a dia como é? Muitos tem vontade de empreender, poucos tentam e dizem que é coragem. Mas, eu digo é coragem que precisamos mesmo? Eu aprendi que coragem apenas não é suficiente, há outros fatores importantes e que vc pode saber deles ainda quando está empregado e tem o empreendorismo como “vontade”. É disso que pretendo falar, trazer o dia a dia, nada de dicas tais como “como empreender?” ou “como abrir o negócio do zero e ganhar $$$”. Isso já está lotado na internet. Vou tentar trazer o que poucos falam.

Aprendizado e as lições

Não é possivel listar todas as lições de 2014, pq são mais de 365 lições. Porém, tem aquelas que marcam e se repetem muitas vezes durante o ano com intensidades diferentes. Mas, vou listar algumas:

1. Acreditar: Seja o que for, por mais dificil que seja a situação, acredite que tudo é passageiro, nada dura para sempre.Só acredite que vc terá a capacidade de resolver;

2. Você vai está sozinho: Os seus problemas é você que resolve. Não adianta, querer transferir para alguém. Ele volta pra vc. Pois, é o único com capacidade em achar a solução. E nisso tire um aprendizado.

3. Você não é melhor que ninguém: acredite não importa quanto tem na sua conta, que carro vc anda. Você não é melhor que ninguém nesse mundo. A sua vida pode mudar em questões de minuto e tudo que vc considera essencial e material, não terá nem 1/3 do valor que pagou. Então, aprenda a viver com as diferenças e olhe para o que as pessoas são e não o que elas tem.

4. Ajude as pessoas: parece piada isso ou campanha para ONG. Mas, não é.Ir para o trabalho, tirar o carro da garagem e ter um trocado para o chop na sexta-feira, parece algo normal, mas isso para você.Há pessoas nesse momento lutando pela vida a cada minuto, que não precisa de muito, mas que o pouco de cada um pode mudar a vida dessas pessoas. Eu confesso que nunca me interessei muito nesse mundo das ONGs. Mas, esse ano meu sentimento e pensamento mudaram. Não pq alguém que trabalha em uma ONG me fez mudar, pq conheci pessoas que dependem dessas ONGs para sobreviver e quando olhei para o meu lado e vi o que já havia conquistado e nunca devolvi aquilo para a sociedade, não me senti bem. Não tenho religião, apenas acredito que há um Deus, seja qual for ele. E acredito, que o mesmo tem mudado minha vida e me deu oportunidade de rever meus conceitos. Esse é um dos meus objetivos de vida com o empreendorismo, pois foi onde vi a oportunidade que posso ajudar e mudar as vidas das pessoas. Dinheiro é importante, porém é limitado e deve ser consequência na sua vida.

E para 2015?

Ainda não fiz planos, não escrevi no papel nada daquilo que vamos ver ai nos jornais nos próximos dias. Porém, em termo simples de ser, é evoluir o que foi consquistado em 2014, ter aprendido com os erros e saber quer novos estão a caminho. Porém, saber levantar é o que mais importa.E claro quero blogar de maneira aceitável aqui e não deixar que as aranhas tomem conta do blog :). Ah! Não posso esquecer de publicar meus dois livros que estão no forno. Um sobre AngularJS e outro mais voltado a quem deseja empreender e vou contar os bastidores.

Agora  a minha pergunta e o seu 2014 como foi? E para 2015?

abraços e quero agradecer à todos vocês por acompanhar o blog, mandar emails. Se não fosse cada uma dos leitores e seguidores que tenho hoje, acredito que não teria chegado aos 7 anos de blog.

Série Continuous Integration: Usando GitHub para autenticação no Jenkins

Olá Pessoal,

No post de hoje vamos ver como usar uma conta do GitHub como autenticação  para o nosso Jenkins. Eu particularmente acho isso fantástico, pois não preciso ficar gerenciando usuários. A única desvantagem é se o projeto não usar GitHub.  Daí podemos optar pelo próprio banco do Jenkins ou criar um com o MySQL, por exemplo, e fazer o Jenkins consultar o usuário nessa base de dados.

Lets go…

Starting…

Considerando que você já tem o Jenkins instalado, por default ele não pede autenticação, ou seja, qualquer um que souber o endereço do seu jenkins, caso esteja publico, pode acessar e buildar ou apagar o seu projeto. Que ruim heim? Vamos ver aqui como fazer autenticação.

Se você vem acompanhando o post no blog, certamente já tem o plugin do GitHub e o de autenticação instalado no Jenkins, senão instale em manage Jenkins >> manage plugins.

 

jenkinsplugingithub

Instale e salve. Escolha a opção Install without restart.

Agora vá novamente a manage jenkins e escolha configure global security. Por default vai estar desabilitada. Habilite.

E escolha:

 

jenkinsgithubauth

Aqui teremos que colocar as informações de autenticação do GitHub. Mas o que colocamos ai? A autorização de que usuários podem logar nessa aplicação a partir do GitHub. Então siga esses passos:

  1. Faça o login no Github com sua conta ou a conta que irá permitir acesso;
  2. Acesse: https://github.com/settings/applications
  3. E agora:

 

jenkinsregistergithub

E preencha:

 

jenkinsgithubregisterdone

O clientID e o Client Secret são gerados. Coloque no campo do Jenkins respectivamente, e agora vamos autorizar os usuários que podem acessar. Coloque no campo a seguir os usuários do GitHub que será admin no Jenkins, ou seja, terá permissão total sobre o build:

jenkinsgithubauthorization

A separação é por vírgula. Não se esqueça disso.

Salve as alterações. Feche o Jenkins e abra novamente. É esperado que apareça:

jenkinsgithublogin

Faça o Login. No primeiro acesso, o GitHub vai perguntar se você deseja acessar a aplicação de terceiro que você foi adicionar, permita o acesso e pronto. Você já vai cair no Jenkins.

Show e simples né?

Abraços. Vou ficando por aqui.

See ya!! 

Troubleshooting Jenkins com repositório privado Github

 

Olá Pessoal,

Quebrei a cabeça esses dias tentando fazer o jenkins se comunicar com um repositório privado no GitHub. Considerando que o jenkins está em um servidor remoto, deu muito trabalho, gastei umas 12hrs até funcionar.

O Problema:

jenkins github private repository returned status code 128:

Essa é a exceção que recebemos quando o Jenkins tenta conectar ao repositório privado para fazer o clone.

O motivo?

O Jenkins não consegue autenticar para fazer o clone.

O que achei?

Não fui muito feliz achando que era da mesma forma que fazemos com repositório público, que apenas gerar o ssh key e adicionar no github. Mas não é bem assim.

Solução

Para resolver o problema eu tive que adicionar 2 ssh key.

  1. Gerei um ssh específico (algo como id_rsa_meuprojeto);
  2. Peguei o id_rsa que já tinha no meu servidor e adicionei ao github.

Resumindo em steps

1. Passphrase não pode ter password, ou seja,  deixar empty para o id_rsa_meuprojeto

2. Criei um key específico id_rsa_meuprojeto e adicionei no github e dei authorized no servidor pelo painel. No meu caso uso  integrator

3. Adicione o id_rsa do servidor no github

4. No Jenkins usei key do id_rsa_meu projeto

Veja na imagem a seguir:

demoniojenkinsfixed

E no Jenkins informe o repositório assim:

jenkinsconfiggithub

Ou seja, usando git@github.com:youruser/yourproject

Não use Https, porque não vai.

É isso ai, só buildar e ver o clone rolando.

Abraços, see ya!!