Build
Este Capítulo apresentar as ferramentas e procedimentos necessários para geração da builds e releases do Framework Demoiselle.
Release Sonatype
Essa seção descreve as configurações e procedimentos necessários para publicação de uma versão do Framework Demoiselle. Guia de referência: http://central.sonatype.org/pages/ossrh-guide.html
Criação da Conta e Chaves de Acesso
Passos:
- Crie sua conta no Jira da Sonatype: https://issues.sonatype.org/secure/Signup!default.jspa
- A sonatype concede acesso por grouId, no caso do Demoiselle: org.demoiselle. Um membro desse groupId deve solicitar a inclusão de novos usuários. Segue issue para inclusão de usuários: https://issues.sonatype.org/browse/OSSRH-25135. Caso esteja criando um novo groupId veja essa issue de exemplo: https://issues.sonatype.org/browse/OSSRH-25115
- Após confirmação da sonatype seu usuários está habilitada para fazer releases.
Configurando o settings.xml
Configure seu arquivo _settings.xml. _Na pasta $home/.m2 crie ou edite o arquivo settings.xml.
<settings>
<servers>
<server>
<id>sonatype-nexus-staging</id>
<username>usuario_do_jira</username>
<password>password</password>
</server>
<server>
<id>sonatype-nexus-snapshots</id>
<username>usuario_do_jira</username>
<password>password</password>
</server>
</servers>
<profiles>
<profile>
<id>gpg</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<gpg.passphrase>sua_senha</gpg.passphrase>
</properties>
</profile>
</profiles>
</settings>
Para assinar os artefatos da build gere sua senha gpg.
gpg --gen-key
Publique sua chave pública:
http://keys.gnupg.net
Configurações do Git que podem ser úteis.
Gravar senha do git:
git config --global credential.helper cache
Warning com certificados:
git config --global http.sslVerify "false"
Gerando Snapshot
Para gerar uma versão snapshot na Sonatype basta executar;
mvn -Pdemoiselle deploy
A versão snapshot será publicada no seguinte https://oss.sonatype.org/content/repositories/snapshots/org/demoiselle/jee/
Gerando uma Release
Primeiramente devemos verificar se o build está funcionando sem problemas.
mvn -Pdemoiselle clean install
Prepare o release, usaremos o modo sem interação com o terminal, portanto informaremos previamente o nome da tag, a versão da release e a nova versão para desenvolvimento.
mvn -Pdemoiselle -B -Dtag=3.0.0 release:prepare -DreleaseVersion=3.0.0 -DdevelopmentVersion=3.0.1-SNAPSHOT
Se não houve erros na preparação executamos a release.
mvn -Pdemoiselle release:perform
Se houve erro na preparação é possível desfazer o processo.
mvn -Pdemoiselle release:rollback
Caso queira fazer rollback, mas a tag tenha sido gerado no repostório git, remove a tag com os comandos
//local
git tag --delete tagname
//remoto
git push --delete origin tagname
Ao término da build é apresentado o ID de repositório temporário no qual é possível fazer últimos testes antes da liberação. Vide exemplo:
[INFO] [INFO] * Closing staging repository with ID "orgdemoiselle-1014".
Para fazer a release desse repositório, deve-se acessar o site https://oss.sonatype.org com seu usuário proceder as seguintes ações:
- Acessar o menu Staging Repositories;
- Pesquisar pelo repositório temporário, no exemplo seria "orgdemoiselle-1014";
- Selecionar o repositório procurado;
- Acionar o botão Release;
- Informar a descrição da release. Exemplo: "Release for Demoiselle JEE 3.X.X";
- Confirmar.
O repositório temporário será fechado e a build será publicado no repositório principal em https://oss.sonatype.org/content/repositories/releases/org/demoiselle/jee/
Licenças
Para verificar se os arquivos possuem licença em seus cabeçalhos basta chamar o comando:
mvn -Pdemoiselle license:check
Caso alguma arquivo não apresente o cabeçalho é possível inclui-lo com o comando:
mvn -Pdemoiselle license:format
Ferramentas de Qualidade (IC)
A integração contínua das builds do Framework Demoiselle são realizadas pela ferramenta Travis CI:
https://travis-ci.org/demoiselle
Cobertura de Testes
A cobertura dos testes unitários estão disponíveis na ferramenta Coveralls: https://coveralls.io/github/demoiselle
Sonar
As métricas de código são publicadas no Sonarqube: https://sonarqube.com/dashboard?id=org.demoiselle.jee%3Ademoiselle-build