Powered by Max Banner Ads 

Série Continuous Integration: Clonando workpace no Jenkins

November 13th, 2014 No comments

jenkinslogo

olá Pessoal,

O post de hoje vamos ver como clonar um workspace de um outro job. Mas, você pode está se perguntando, pq eu fazer uma clone de workspace? Para responder a pergunta vou apresentar um cenário e ai você entende o motivo.

lets go…

 Instalando o plugin

Vamos instalar o plugin que permite clonar o workspace no Jenkins em manage plugins procure por: Clone Workspace SCM Plug-in e instale o plugin.
O cenário

Por que eu deveria clonar um workspace? Na verdade o que seria clonar o workspace?

vamos lá. Clonar um workspace nada mais é que copiar o conteúdo de um workspace para outro. Mas, pq eu faria isso? para não ter que baixar o projeto novamente e usar o do último build. Nos projetos aqui na empresa temos vários jobs por exemplo: compile >> tests >> build >> deploy

Da esquerda para direita, o primeiro job é o que verificar se houve mudança no repositorio remoto e em caso positivo começa o build. Os demais projetos, não podem verificar no repositorio repositorio remoto, apenas usam o código baixado para executar o que foi definido no job. E ai que entra a vantagem de fazer clone do workspace, caso o job compile passe, podemos copiar o workspace.Eu já cometi o erro de não fazer isso, e simplesmente pegar o código do repositorio no proximo step do Jenkins, mas é um risco grande do código que foi executado no primeiro job, não ser mesmo o que está no segundo ou nos posteriores, pois se algum código foi enviado para o repositorio remoto nesse intervalo os próximos job vão fazer o checkout. E para evitar isso é melhor copiar o workspace.

Na prática

No projeto inicial, precisamos dizer que se o build passar, ele deve permitir que o workspace seja clonado. No meu caso é o job que chamei de compile que vai fazer isso:

jenkinscloneworkspace

Agora no segundo job que é tests, vai copiar o conteúdo do workspace do projeto compile:

jenkinsourcecodecloneworkspace

Observe que no source code informei que o código vem de outro workspace e não do git, svn etc.
Build

Agora build o projeto inicial(compile) e depois o próximo projeto(tests) e veja que o workspace foi copiado.

Simples não?

vou ficando por aqui e espero que tenha gostado do post.

abracos, see ya!!

Série AngularJS: Validando Formulário

November 9th, 2014 No comments

angularjslogoA

Olá Pessoal,

Hoje vamos ver como customizar mensagens de validação em um formulário com AngularJS. Será uma simples validação. Para algo mais específico precisamos criar diretivas. Por exemplo, validar se o username é unico. Tem que criar uma diretiva que faça essa validação para poder exibir uma mensagem no formulário. Não vamos entrar nesse cenário aqui, pois já seria um novo post.

Lets go…

Github

O exemplo vai estar no projeto receipeangularexample no meu github

https://github.com/camilolopes/workspaceAngularJs
Development

Vou assumir que você já tem a configuração básica do AngularJS. Para o exemplo usarei rotas/deep linking para acessar o conteúdo.

Step 1 – Configurando a rota

 

Step 2 – Criando uma função no Controller

Vamos criar uma função bem simples no controller

 

Step 3 – Criando o formulário

Agora vem o nosso formulário. Veja:

Entendendo o Código

Claro que precisamos entender o que o código faz. Focarei apenas no que é importante, ou seja, não preciso explicar o que um atributo required no campo input faz.

Primeiro ponto

Ter um nome para o formulário, sem um nome nada adianta entender o restante do código. É através dele que vamos acessar os campos.

No campo input temos que dar um name para o nosso campo e estamos dizendo que ele é required e qual mensagem deve ser exiba. Se não fizermos isso será a mensagem default HTML 5. Na linha span estamos dizendo: “exiba esta mensagem se o campo username for inválido”, ou seja, se não tiver nada digitado vai exibir essa mensagem por padrão, como vimos na imagem anterior.
bloco email

 

Fizemos a mesma coisa do campo nome, a diferença é que aqui temos um campo do tipo email que valida o formato do e-mail, se este for inválido exibe a mensagem que colocamos na validação

 

O objeto $error que estamos usando contém todas as validações para um específico formulário, que no nosso caso chama-se mainForm.

Lembrando que a estrutura é nomeDoForm.nomePropriedade.$error.attributo ou nomeDoForm.expression.

Para o bloco idade nada de diferente, então nem preciso explicar.

Bloco Site

Aqui estamos validando a url e para isso temos o type url ja no HTML 5.Mas, observe a diferença que a mensagem somente é exiba quando o campo é modificado, ela não aparece quando a página é carregada, como fizemos nos outros campos, isso devido a essa linha aqui:

 

Ela está dizendo: “se o campo usersite for modificado e inválido, exiba o conteudo desse bloco” que no nosso caso temos a mensagem “Url inválida.

$dirty retorna true se o campo foi modificado

Bloco botão submit

 

E para garantir que o usuario nao vai submeter o form, vamos desabilitar o botão submit se o formulário é invalido, ou seja, se todos os requisitos não são atendidos esse botão fica disabled

Testando

angularformvalidationempty

 
angularformvalidationinvalid
Por hoje é isso, vou ficando por aqui e espero que tenham gostado do post.

abracos, see ya!!

Related Posts with Thumbnails