Como Adicionar o Primeiro Android de Trabalho para Jenkins

Novo: acabamos de lançar um novo ebook: o Jenkins Starter Guide, que contém todas as informações nesta série de quatro posts e mais. Vá para a nossa página de recursos para fazer o download.

caso você tenha perdido nossos primeiros dois posts nesta série, ou se você não tiver certeza do que é Jenkins ou CI, volte e leia: o que é Jenkins e por que você deve usá-lo?

este é um guia passo a passo sobre como configurar o Jenkins para criar e testar aplicativos Android. Nesta demonstração, usaremos um aplicativo de exemplo usando Bugfender SDK no Android. Você obviamente vai querer usar seu próprio aplicativo Android construído ou biblioteca. As etapas para adicionar seu próprio projeto Android ao Jenkins serão as mesmas.

construindo aplicativos iOS? Fique de olho no próximo artigo desta série em breve.

primeiro, você precisará preparar a máquina para compilar e executar aplicativos Android. Se você ainda não instalou o Jenkins, siga as etapas na postagem anterior para instalar o Jenkins em seu servidor.

Configurar o Aplicativo para Android Cria Jenkins

Passo 1: Instalar o Java JDK

sudo apt-get install java-8-openjdk

Passo 2: Instalar o Android SDK

Vá para https://developer.android.com/studio/index.html#downloads, e pegue o link listado na tabela para Obter as ferramentas de linha de comando > Linux. Não baixe nada, basta copiar o link.

sudo apt-get install unzip# here you paste the link you grabbed in the developer.android.com sitesudo -iu jenkins wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zipsudo -iu jenkins mkdir android-sdksudo -iu jenkins unzip sdk-tools-linux-3859397.zip -d android-sdk# this step is important to accept the Android SDK licenseyes |sudo -iu jenkins android-sdk/tools/bin/sdkmanager --licenses

seja um super-herói

afaste bugs e mantenha seus usuários seguros.

use o Bugfender gratuitamente hoje

Etapa 3: Configure Jenkins

em seguida, faça login no Jenkins e configure o SDK do Android que você acabou de instalar:

abra https://your-ci-server-name.com no seu navegador. Você verá algo como isto:

  • Ir para Gerir Jenkins > Configurar Sistema
  • Consulte “variáveis de Ambiente”
  • Adicionar Nome: ANDROID_HOME
  • Adicionar Valor de: /var/lib/jenkins/android-sdk
  • Clique em “Aplicar” e depois em “Salvar”

Passo 4: Criar um Android de Trabalho

Agora volte para a página inicial. Clique em Novo Item. Digite o nome do seu projeto e selecione ” Projeto Freestyle.”

Passo 5: baixando seu código para Jenkins

em seguida, você precisa adicionar um link ao seu repositório para que Jenkins possa baixar seu código. Especifique o URL Git do seu repositório na seção Gerenciamento de código-fonte. Como mencionado, vamos usar este repositório de amostra: https://github.com/bugfender/BugfenderSDK-android-sample.git.

se você tiver um repositório Mercurial ou Subversion, eles funcionam exatamente da mesma maneira. Se você tiver um repositório privado, também poderá criar chaves SSH para acessar seu repositório com o protocolo git.

Etapa 6: Configurando Jenkins Build Triggers

Você também pode especificar Build Triggers que construirão o projeto automaticamente para você. É melhor usar um gancho para acionar compilações automaticamente quando alguém envia código para o repositório.

para BitBucket, Gitlab e a maioria dos provedores Git, você pode usar a opção “Trigger builds remotamente”. Isso fornecerá um URL que você pode configurar como um webhook em seu provedor para iniciar automaticamente uma compilação.

para usuários do GitHub, o mais fácil é encontrar e instalar o “plugin GitHub” (em Gerenciar Jenkins > Gerenciar plug-ins) e uma opção específica do GitHub aparecerá. Isso instalará o webhook para você.

Etapa 7: construir

depois de ter o código-fonte no Jenkins, é hora de construir. Se o seu projeto tiver um wrapper Gradle, é isso que você deve usar. No nosso caso, criaremos uma etapa de compilação do Invoke Gradle script como esta:

se você tiver um projeto baseado em Ant, há também uma etapa de Compilação de Ant Invoke ou, para máxima flexibilidade, você pode usar a etapa de compilação executar shell.

Teste sua compilação pressionando “salvar”

e pronto. Seu primeiro projeto Android foi adicionado ao Jenkins. Agora você pode querer considerar acelerar Gradle e configurar testes automatizados no Jenkins.

comece a corrigir Bugs mais rápido agora gratuitamente

Bugfender é o melhor logger remoto para aplicativos móveis.

inscrição

Acelerar o Gradle (opcional)

Se você estiver executando o constrói com base em Gradle, você pode poupar algum tempo de compilação executando o Gradle como daemon. Em ordem para que ele comece a funcionar faça o seguinte:

mkdir -p /var/lib/jenkins/.gradleecho org.gradle.daemon=true | sudo -iu jenkins tee -a /var/lib/jenkins/.gradle/gradle.properties

Executar Testes de Unidade

Se você deseja executar testes de unidade, você pode fazer isso adicionando uma outra etapa de compilação com o teste Gradle tarefa, como este:

Execução de Testes de Integração

para configurar testes de INTERFACE do usuário, você precisará executar um emulador. Mesmo que Jenkins tenha um Plugin de emulador Android, descobrimos que ele não foi atualizado e não está mais funcionando com as versões mais recentes do Android SDK. Aqui está nossa solução alternativa sugerida:

Etapa 1: Baixe o emulador. Para listar os SDKs disponíveis, execute:

sudo -iu jenkins android-sdk/tools/bin/sdkmanager --list --verbose

nota rápida sobre como selecionar a imagem certa para você: as imagens baseadas em x86 são executadas mais rapidamente, mas também precisam de aceleração de hardware. Você pode ter que ativar a aceleração KVM (sudo modprobe kvm) em seu servidor e seu servidor não pode ser uma máquina virtual. Por esse motivo, estamos escolhendo uma imagem ARM, que funciona mais devagar, mas funciona.

Passo 2: No nosso caso, nós estamos olhando para executar a nossa aplicação no Android SDK do nível 25, para o sistema de imagens;android-25;google_apis;armeabi-v7a parece adequado, em seguida, instalar-lo desta forma:

sudo -iu jenkins android-sdk/tools/bin/sdkmanager 'system-images;android-25;google_apis;armeabi-v7a'

Passo 3: uma Vez instalado, vamos criar um Dispositivo Virtual Android (um emulador instância) com ele:

echo no | $ANDROID_SDK_ROOT/tools/bin/avdmanager -v create avd --force --package 'system-images;android-25;google_apis;armeabi-v7a' --name Android25 --tag google_apis --abi armeabi-v7a

Passo 4: Em seguida, usamos Supervisord para executar o emulador Android como um serviço de sistema, sempre no fundo. Para instalá-lo:

sudo apt-get install supervisor

em seguida, crie um arquivo de configuração em /etc/supervisor/conf.d/emulator.conf:

command=/var/lib/jenkins/android-sdk/emulator/emulator -avd Android25 -no-window -noaudio -no-boot-anim -accel on -ports 5556,5557autostart=trueuser=jenkinsenvironment=ANDROID_SDK_ROOT=/var/lib/jenkins/android-sdk

Etapa 5: feito isso, reinicie o supervisord para aplicar as alterações:

sudo service supervisor restart

o emulador deve começar em segundo plano. Pode levar de 1 A 2 minutos. Você vai ver o emulador de dispositivo aparecer na lista de dispositivos quando estiver pronto:

sudo -iu jenkins android-sdk/platform-tools/adb devices

Passo 6: Na Jenkins trabalho, adicionar um Executar o shell etapa de compilação como este:

Código:

ANDROID_SERIAL=emulator-5556# wait for emulator to be up and fully booted, unlock screen$ANDROID_HOME/platform-tools/adb wait-for-device shell 'while ]; do sleep 1; done; input keyevent 82'./gradlew connectedAndroidTest

Próximos Passos

Existem mais opções, como a execução de um emulador de Android, instalar a aplicação e a execução de vários testes.

além disso, existem alguns plugins realmente interessantes com os quais você pode jogar:

  • Android Emulator Plugin – no momento, este plugin não está funcionando corretamente com o mais recente Android SDK. Mas nosso melhor palpite é que eles vão consertá-lo e ele estará funcionando novamente em breve. Como alternativa, você pode usar uma versão mais antiga do SDK.
  • Android Signing Plugin
  • Google Play Android Publisher Plugin

para mais posts nesta série, confira:

  • o que é Jenkins e por que você deve usá-lo?
  • como instalar o Jenkins no Ubuntu
  • como adicionar seu primeiro trabalho no iOS ao Jenkins

Deixe uma resposta

O seu endereço de email não será publicado.