Olá a todos!!!! Aqui está mais um artigo da saga. Neste artigo estarei explicando as principais configurações para implementar a Integração Contínua no seu projeto. Primeiramente, <a href="http://www.lagix.com.br/2011/04/integracao-continua-cruisecontrolnet.html">após ter instalado o servidor CruiseContro.NET</a>, vamos abrir o arquivo ccnet.config que está na pasta server do CCNet.
Este arquivo apresenta a seguinte estrutura:
<cruisecontrol xmlns:cb="urn:ccnet.config.builder"> </cruisecontrol>
Entre estas tags é que iremos configurar nosso projeto. Então vamos começar a criar o projeto, abaixo está um exemplo de como ficará a configuração após a criação do projeto:
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<project name="Nome do Projeto"></project>
</cruisecontrol>
Agora o projeto está criado, porém não irá funcionar. Temos que configurar o repositório do Subversion e o intervalo que o servidor verificará o Subversion a existência de novas versões. A configuração firacá parecida com abaixo:
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<project name="Nome do Projeto"></project>
<weburl>http://IP/ProjetoNoSubversion</weburl>
<triggers>
<intervaltrigger>
<buildcondition>IfModificationExists</buildcondition>
<seconds>10</seconds>
<name>IntervalTrigger</name>
</intervaltrigger>
</triggers>
</cruisecontrol>
webURL - URL de onde está o projeto Subversion;
triggers - Tag para a configuração do intervalo de execução da integração;
intervalTrigger - Tag que define que a integração será executada em intervalos de um determinado período. Existem outras possibilidades de que podem ser conferidas aqui;
buildCondition - Condição para o início da execução da integração, neste caso a integração somente será executada quando existir uma modificação no código;
seconds - Configura o tempo do intervalo, neste caso a integração verificará a cada 10 segundos a existência de um código alterado/novo para poder inicializar a execução da integração.
Agora já sabemos onde está o código fonte do nosso projeto, agora temos que definir uma pasta que será baixados os fontes para o servidor de integração contínua executar o processo de build, testes e etc.; para isso vamos acrescentar mais uma tag na configuração, como é vista abaixo:
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<project name="Nome do Projeto"></project>
<weburl>http://IP/ProjetoNoSubversion</weburl>
<triggers>
<intervaltrigger>
<buildcondition>IfModificationExists</buildcondition>
<seconds>10</seconds>
<name>IntervalTrigger</name>
</intervaltrigger>
</triggers>
<workingdirectory>C:\MeuProjeto</workingdirectory>
</cruisecontrol>
Agora, estamos quase prontos, mas primeiro temos que configurar o build (que será explicado mais adiante) e os relatórios. Veja a configuração abaixo, as tags destacadas serão explicadas mais a frente, nelas iremos chamar o build do projeto. Agora iremos publicar os relatórios no CruiseControl.NET, veja a configuração abaixo:
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<project name="Nome do Projeto"></project>
<weburl>http://IP/ProjetoNoSubversion</weburl>
<triggers>
<intervaltrigger>
<buildcondition>IfModificationExists</buildcondition>
<seconds>10</seconds>
<name>IntervalTrigger</name>
</intervaltrigger>
</triggers>
<workingdirectory>C:\MeuProjeto</workingdirectory>
<b><task></task></b>
<b> </b>
<publishers></publishers>
<statistics>
<xmllogger>
<modificationhistory>
<modificationwriter> </modificationwriter></modificationhistory></xmllogger></statistics>
</cruisecontrol>
<b>xmllogger</b> - Exibe o log da execução do processo de integração;
<b>modificationHistory</b> - Exibe o histórico de modifações do código;
<b>modificationWriter</b> - Exibe o usuário, do Subversion, que fez a alteração;
Caso você queira inserir um arquivo, XML, externo para compor o relatório insira as seguintes tags, como se pode ver abaixo:
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<project name="Nome do Projeto"></project>
<weburl>http://IP/ProjetoNoSubversion</weburl>
<triggers>
<intervaltrigger>
<buildcondition>IfModificationExists</buildcondition>
<seconds>10</seconds>
<name>IntervalTrigger</name>
</intervaltrigger>
</triggers>
<workingdirectory>C:\MeuProjeto</workingdirectory>
<task></task>
<publishers></publishers>
<merge>
<files>
<file>C:\Diretorio\relatorio.xml</file>
</files>
</merge>
<statistics>
<xmllogger>
<modificationhistory>
<modificationwriter>
</cruisecontrol>
IMPORTANTE: Uma coisa que tem ficar bem claro, a tag merge tem que ser a primeira dentro da publishers, caso contrário não será exibido o seu relatório.
Com isso terminamos (em partes, falta o build) a configuração do projeto. Até a próxima.
Integração Contínua - CruiseControl.NET
Neste artigo estarei falando sobre o elemento principal da Integração Contínua que é o Servidor de Integração Contínua. Seguindo o nosso exemplo, estarei utilizando o CruiseControl.NET que é uma versão do CruiseControl para DotNet.
1 - Pré-Instalação
Antes de instalar o servidor é necessário que antes tenha instalado os seguintes programas: Microsoft Framework .NET 3.5 e IIS.
2 - Instalação
O processo de instalação do CruiseControl.NET é simples. Primeiramente teremos que realizar o download da última versão (no caso 1.6) no site http://confluence.public.thoughtworks.org/. Após o download execute o instalador, utilizando o protocolo NNF (Next, Next, Finish) você conseguirá instalar o CruiseControl.NET. Só fanzendo uma observação, atente para as opções "Install CC.Net server as Windows service" e "Create virtual directory in IIS for Web Dashboard", estas opções devem estar marcadas e, com isso o servidor será executado como um serviço do Windows e será criado automaticamente um diretório virtual no IIS.
3 - Instalação do CCTray
O CCTray é um aplicativo que vem junto ao servidor, ele é uma versão client do CruiseControl.NET, com ele cada envolvido na equipe de desenvolvimento é avisado quando a integração falha. Existem outras formas de fazer este aviso, porém o CCTray é a maneira mais ágil.
Após a instalação do servidor, você pode acessa-lo e, localizado na parte superior-direita encontra-se o link para o download do CCTray. A instalação dele é bem simples, mais a frente estarei explicando como realizar a configuração.
4 - Criando um projeto
Na pasta onde foi instalado o CruiseControl.NET existe um diretório chamado server, dentro dele vamos abrir o arquivo ccnet.xml.config, nele é onde será feito toda a configuração do projeto.
Toda a configuração é feita neste arquivo XML, então para criarmos um novo projeto é só inserir a seguinte tag:
5 - Adicionando um projeto no CCTray
Agora com o projeto criado, podemos adicioná-lo ao CCTray, para isso vá File\Settings. Na aba Build Project, clique no botão Add e, em seguida em Add Server. Na tela a seguir coloca-se o caminho do endereço do servidor e em seguida Ok. Em Available Projects selecione o projeto desejado e clique em Ok. Pronto o CCTray já está configurado com o projeto.
Por enquanto é isso. No próximo artigo explicarei como criar as configurações para o projeto.
1 - Pré-Instalação
Antes de instalar o servidor é necessário que antes tenha instalado os seguintes programas: Microsoft Framework .NET 3.5 e IIS.
2 - Instalação
O processo de instalação do CruiseControl.NET é simples. Primeiramente teremos que realizar o download da última versão (no caso 1.6) no site http://confluence.public.thoughtworks.org/. Após o download execute o instalador, utilizando o protocolo NNF (Next, Next, Finish) você conseguirá instalar o CruiseControl.NET. Só fanzendo uma observação, atente para as opções "Install CC.Net server as Windows service" e "Create virtual directory in IIS for Web Dashboard", estas opções devem estar marcadas e, com isso o servidor será executado como um serviço do Windows e será criado automaticamente um diretório virtual no IIS.
3 - Instalação do CCTray
O CCTray é um aplicativo que vem junto ao servidor, ele é uma versão client do CruiseControl.NET, com ele cada envolvido na equipe de desenvolvimento é avisado quando a integração falha. Existem outras formas de fazer este aviso, porém o CCTray é a maneira mais ágil.
Após a instalação do servidor, você pode acessa-lo e, localizado na parte superior-direita encontra-se o link para o download do CCTray. A instalação dele é bem simples, mais a frente estarei explicando como realizar a configuração.
4 - Criando um projeto
Na pasta onde foi instalado o CruiseControl.NET existe um diretório chamado server, dentro dele vamos abrir o arquivo ccnet.xml.config, nele é onde será feito toda a configuração do projeto.
Toda a configuração é feita neste arquivo XML, então para criarmos um novo projeto é só inserir a seguinte tag:
5 - Adicionando um projeto no CCTray
Agora com o projeto criado, podemos adicioná-lo ao CCTray, para isso vá File\Settings. Na aba Build Project, clique no botão Add e, em seguida em Add Server. Na tela a seguir coloca-se o caminho do endereço do servidor e em seguida Ok. Em Available Projects selecione o projeto desejado e clique em Ok. Pronto o CCTray já está configurado com o projeto.
Por enquanto é isso. No próximo artigo explicarei como criar as configurações para o projeto.
O sonho não acabou
Dias corridos são... E por isso a nova versão beta está demorando para sair. Na próxima versão o Amigo Oculto estará mais estável, estou refarotando o mesmo. Em breve publicarei mais informações sobre a nova versão beta do Amigo Oculto.
O objetivo é lançar até o final deste ano na loja oficial (Android Market) a versão final do Amigo Oculto.
Até mais. ;D
O objetivo é lançar até o final deste ano na loja oficial (Android Market) a versão final do Amigo Oculto.
Até mais. ;D
Problemas com som no Ubuntu
Eu instalei no meu computador a versão beta do Ubuntu 10.10 e, de vez em quando ocorre um problema de o mesmo não emitir nenhum som.
Após pesquisar bastante descobri o comando abaixo:
# alsa force-reload
Ele força a reinicialização do sistema de som e, assim volta a funcionar perfeitamente.
Após pesquisar bastante descobri o comando abaixo:
# alsa force-reload
Ele força a reinicialização do sistema de som e, assim volta a funcionar perfeitamente.
Converterndo 3GP para MP3
Hoje tive um problema. Precisava converter audios em 3GP, gravados no celular para o MP3, para editá-los no Audacity. No Ubuntu com o comando abaixo não funcionava:
Então ditiei o seguinte comando para descobrir o codec do mp3 e verifiquei que no Ubuntu o mesmo tinha outro nome:
ffmpeg -codecs | grep mp3
EA libmp3lame libmp3lame MP3 (MPEG audio layer 3)
Assim consegui realizar a conversão ;D
ffmpeg -i audio.3gp -acodec mp3 -ab 128k pt01.mp3
Então ditiei o seguinte comando para descobrir o codec do mp3 e verifiquei que no Ubuntu o mesmo tinha outro nome:
EA libmp3lame libmp3lame MP3 (MPEG audio layer 3)
ffmpeg -i audio.3gp -acodec libmp3lame -ab 128k pt01.mp3
Assim consegui realizar a conversão ;D
Microsoft lança o revolucionario Windows 95
De volta ao passado!!! (Re)Veja o vídeo da reportagem do Jornal Nacional sobre o lançamento do revolucionario Windows 95.
Integração Contínua - Preparando Ambiente
Agora que já sabemos o que é Integração Contínua, vamos preparar o ambiente para o processo.
Precisaremos dos seguintes itens:
No próximo artigo estarei abordando as configurações e, instalações, de cada um dos itens acima.
Precisaremos dos seguintes itens:
- Servidor com Windows Server (de preferência dedicado à Integração Contínua e publicação do software para Homologação);
- Framework Microsoft .NET 3.5;
- Servidor de Integração Contínua para .NET (Cruise Control .NET);
- Ferramenta para Teste Unitário em .NET (NUnit);
- Ferramenta para Teste de Aceitação (Selenium);
- Navegador Web Firefox;
- Ferramenta para Teste de Cobertura (NCover);
- Ferramenta para Teste de Duplicação de Código (Dupfinder);
- Ferramenta para Análise de Código (FXCop);
- Servidor IIS;
- Servidor de Controle de Versões (Subversion);
- Ferramenta para geração de documentação do código (NDoc);
- Ferramenta para realizar o Build do projeto (NAnt);
- Ferramenta para gerenciamento do projeto (TargetProcess).
No próximo artigo estarei abordando as configurações e, instalações, de cada um dos itens acima.
Integração Contínua - Conceito
Olá a Todos! Estarei começando uma série de artigos sobre Integração Contínua. Nesta primeira parte abordarei sobre o conceito e vantagens deste processo. Existem no mercado diversas ferramentas, para diversas linguagens, porém nestes artigos estarei me atentando somente ao processo de Integração Contínua com a plataforma Microsoft .NET.
Integração Contínua é um processo que se integra as práticas de desenvolvimento ágil e, visa manter a qualidade no desenvolvimento de software diminuindo assim as falhas, pois o mesmo realiza automaticamente diversos testes e builds automatizados do projeto e caso algo estiver errado ou fora dos padrões pré-estabelecidos (padrões de qualidade) os envolvidos são avisados automaticamente.
O processo de Integração Contínua funciona da seguinte forma, como é mostrado na figura abaixo:
Conforme o Desenvolvedor realiza um commit (envia as alterações do código fonte para o servidor de Controle de Versão) o servidor de Integração Contínua detecta estas alterações e realiza o processo de compilação, testes e, publicação do software para ser homologado.
Vantagens:
Desvantagens:
Por hoje terminamos aqui. Nos proximos artigos estarei explicando sobre as ferramentas necessárias para montar um servidor de Integração Contínua.
Até lá ;D
Integração Contínua é um processo que se integra as práticas de desenvolvimento ágil e, visa manter a qualidade no desenvolvimento de software diminuindo assim as falhas, pois o mesmo realiza automaticamente diversos testes e builds automatizados do projeto e caso algo estiver errado ou fora dos padrões pré-estabelecidos (padrões de qualidade) os envolvidos são avisados automaticamente.
O processo de Integração Contínua funciona da seguinte forma, como é mostrado na figura abaixo:
Conforme o Desenvolvedor realiza um commit (envia as alterações do código fonte para o servidor de Controle de Versão) o servidor de Integração Contínua detecta estas alterações e realiza o processo de compilação, testes e, publicação do software para ser homologado.
Vantagens:
- Quando um Teste Unitário falha o programador consegue corrigir sem perda de tempo com debug para descobrir onde está o erro;
- Aviso rápido quando ocorre uma quebra de código;
- Aviso rápido quando ocorre um conflito de versões;
- Disponibilidade constante para realização de testes e demonstrações;
- Relatório de métricas gerados a partir dos teste automatizados;
Desvantagens:
- Requer um longo período para realizar a configuração de todo o processo;
Por hoje terminamos aqui. Nos proximos artigos estarei explicando sobre as ferramentas necessárias para montar um servidor de Integração Contínua.
Até lá ;D
Assinar:
Postagens (Atom)

Lagix by Bruno Lage is licensed under a Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.
