Fonte: https://blog.xamarin.com/continuous-integration-for-android-with-visual-studio-team-services/

Por James Montemagno, 18 de agosto de 2016

Tradução: salomaosilva, Azuris. Desenvolvedor Xamarin Azuris

 

Comumente referido como VSTS, o Visual Studio Team Services é o sonho de um desenvolvedor, com ferramentas para cada etapa de desenvolvimento, incluindo planejamento, construção, testes, liberação e insights para sua aplicação. Os desenvolvedores podem escolher apenas um serviço ou utilizar todas as ferramentas do VSTS para o seu pipeline DevOps completo. Como eu estou desenvolvendo aplicativos, é importante que assim que eu empurrar o código para o repositório que meu aplicativo é construído, os testes sejam executados e estejam prontos para a implantação. O VSTS tem as ferramentas perfeitas para construir aplicações Xamarin na nuvem e hoje vamos dar uma olhada na construção de um aplicativo Xamarin.Android na nuvem.

Crie sua conta

Antes de começar, é necessário criar uma nova conta no visualstudio.com e selecionar um nome da conta VSTS no qual vários projetos possam ser criados. Se já tiver uma conta, basta iniciar sessão e selecionar uma conta VSTS existente ou criar uma nova. Durante esta etapa é possível criar um repositório de código privado com um controle de versão do Git ou Team Foundation para controle de origem. Esses repositórios privados são uma ótima opção, já que são totalmente gratuitos e ilimitados, mas também é possível conectar-se a um Git existente ou ao serviço Team Foundation de integração contínua.

Com a conta criada, seremos redirecionados para a nossa página de visão geral da equipe, onde um novo projeto foi criado automaticamente. Se você já tiver uma conta, basta adicionar um novo projeto.

Se você estiver hospedando seu aplicativo dentro do VSTS, você pode ignorar essa etapa, já que está pronto para começar a automatizar suas compilações. Como somos capazes de nos conectarmos a um serviço de repositório de código existente, podemos nos conectar ao GitHub para automatizar um aplicativo existente, o Coffee Tipper. Para adicionar um serviço, teremos que entrar em nossas configurações de projeto no canto superior direito da página:

Podemos adicionar o GitHub como um novo nó de extremidade de serviço na guia Serviços. Você também encontrará outros serviços aqui como External Git e Subversion.

Neste ponto, podemos adicionar um token de acesso pessoal para autorizar o VSTS a falar com o GitHub, ou podemos simplesmente conceder autorização ao fazer login no GitHub.

Criando a definição de construção

Com o GitHub conectado, é hora de criarmos nossa primeira definição de compilação que define as etapas do fluxo de trabalho para criar o aplicativo. Selecione Criar na parte superior da nossa página de projeto e, em seguida, o botão Adicionar para abrir a definição criar nova compilação, onde vamos encontrar uma compilação para Xamarin.Android.

O próximo passo é selecionar nossa fonte de repositório (neste caso GitHub) e, em seguida, uma fila de agentes padrão. Pense em uma fila de agentes como uma máquina que será usada para puxar para baixo o código-fonte e construir o aplicativo totalmente. O VSTS oferece uma solução hospedada na nuvem que pode ser usada com aplicativos Xamarin.Android e inclui 240 minutos de tempo de compilação por mês em um agente de criação hospedado. Também é possível configurar uma fila de agentes locais que esteja executando o agente VSTS para executar as compilações em uma máquina de sua escolha. Para simplificar, vamos selecionar a máquina hospedada para que não haja mais configuração necessária!

Configurando o repositório

Depois de criar a definição, podemos começar a adicionar e editar as etapas, mas antes de terminar, vamos terminar de configurar o repositório que deve ser criado na seção repositório da definição de compilação. Uma vez que já estivermos conectados ao GitHub e selecioná-lo ao criar a definição, tudo o que resta é selecionar e configurar o repositório:

Configurando a definição de construção

A definição de compilação gerada tem algumas etapas predefinidas que a maioria dos aplicativos Xamarin.Android precisa para ser compilada, construída e assinada para implantação. Há três etapas que precisam de configuração para a Licença Xamarin e para Xamarin Test Cloud. Estas podem ser configuradass mais tarde e não são necessárias para construir o aplicativo, então vamos simplesmente clicar com o botão direito e desativar essas etapas para que não sejam executadas. Se você não tiver nenhum teste de unidade, o teste de compilação também pode ser desativado.

Todas as outras etapas, incluindo a restauração de pacotes NuGet, a construção do projeto do Android e o empacotamento do aplicativo podem permanecer. Cada etapa pode ser configurada com propriedades específicas para a etapa. A etapa do projeto Build Xamarin.Android permite configurar o projeto a ser construído. Por padrão, ele irá procurar qualquer projeto que tenha “Droid” no título. Podemos mudar isso para apontar diretamente para o projeto Android Coffee Tip:

Salvar e criar a fila

Agora estamos prontos para testar a compilação. Basta clicar em Salvar para finalizar a definição de construção e atribuir um nome exclusivo à sua escolha. Estou indo com o Android Release Build. Agora, o botão Criar fila … será ativado e poderemos filar manualmente nossa primeira compilação. Assim, nossa primeira compilação está enfileirada no agente hospedado e a compilação começará a nos dar uma leitura completa de tudo o que está acontecendo.

Quando a compilação é concluída, um log de compilação completo fica disponível e uma lista de artefatos que foram criados pode ser baixado.

Salvar cada Commit

Colocamos essa compilação manualmente, mas para realmente integrar essa definição de construção recém-criada em nosso ciclo de DevOps, podemos ativar a Integração Contínua para que uma nova compilação seja iniciada a cada check-in. Na seção Triggers da definição de compilação, basta ativar a integração contínua e configurar quantos filtros de ramos (branches) você quiser. Por padrão, ele monitorará apenas as alterações no ramo mestre.

Indo mais adiante

Há muito mais que podemos fazer com o VSTS para uma aplicação Android para prepará-lo para a produção real.

Assinando com Keystore

Uma das partes mais importantes de lançar um aplicativo Android é assiná-lo com um keystore particular. O VSTS pode lidar com isso facilmente com a construção na assinatura do Android e etapa de alinhamento que já foi adicionada à definição de construção. Para usar essa etapa, precisamos ter criado um armazenamento de chave particular e tê-lo acessível para o agente de compilação. Isso pode ser conseguido fazendo com que ele seja verificado em um repositório particular ou baixando o keystore do armazenamento seguro de blob.

Para baixar o keystore para o agente de compilação, podemos usar o passo da linha de comando combinado com curl, que está no agente hospedado.

Arraste e solte a etapa da linha de comando acima da etapa de sinal e defina as seguintes propriedades para baixar e copiar o keystore para a raiz do repositório no agente de compilação:

Ferramenta: c: \ Arquivos de programas \ Git \ usr \ bin \ curl.exe

Argumentos:

Agora, podemos criar uma variável privada para KeystorePassword que será criptografada para o processo de assinatura do Android. Na guia Variáveis, insira o nome e o valor da senha do armazenamento de chaves e, em seguida, habilite o bloqueio para criptografá-lo.

Por fim, especifique as opções do Jarsigner e certifique-se de que o Zipalign está ativado para o APK Android:

Implantação contínua no HockeyApp para testes

Tudo o que fizemos até agora está incluído no VSTS por padrão, mas há um Marketplace para VSTS que permite que os desenvolvedores ampliem e adicionem novas funcionalidades com novas etapas de construção. O HockeyApp é um serviço que permite que desenvolvedores de aplicativos para dispositivos móveis distribuam facilmente aplicativos para testadores e obtenham feedback deles. Podemos instalar a Extensão HockeyApp VSTS, que adicionará novas etapas de construção para serem facilmente implementadas no HockeyApp.

Assim como estamos conectados ao GitHub nos nossos serviços de projetos em configurações, também podemos nos conectar ao HockeyApp para especificar nosso Token API:

Em nossas etapas de construção, podemos adicionar a etapa HockeyApp na categoria implementar:

A última coisa a fazer é configurar a etapa com a conexão, ID do aplicativo do HockeyApp e o APK para fazer o upload para o HockeyApp.

Uma vez que a construção esteja concluída, ele terá sido assinada e enviada para HockeyApp!

Saiba mais

Criamos Integração Contínua e Implantação Contínua para nosso aplicativo Xamarin.Android no Visual Studio Team Services. Com cada commit, nosso aplicativo será construído, assinado e enviado diretamente para o HockeyApp para testes. Ainda há muito mais para explorar, incluindo os testes com Xamarin Test Cloud e o Marketplace para VSTS. Certifique-se de verificar a documentação completa VSTS para a construção e distribuição de aplicações Xamarin. Para saber como usar o mesmo processo de integração contínua com aplicativos Xamarin.iOS, leia o próximo blog desta série.

Procurando por mais? Visite The Xamarin Show  no canal 9: