Skip to main content

CI/CD Bitrise

Etapa 1: Criar Projeto (caso ainda não tenha sido criado)

  1. A partir da dashboard, selecione Add new App.

  2. Selecione a Add New App on web UI

  3. No primeiro passo, selecione Private

  4. No segundo passo, logue-se no gitlab e selecione o repositório que deseja fazer o deploy.

  5. Em Setup repository access selecione I need to. Copie a chave SSH e selecione GITLAB SETTINGS.

  6. Dentro da guia de GITLAB SETTINGS cole a chave ssd e selecione add key. Feito isso, volte para o Bitrise e selecione I’ve added the SSH key.

  7. No próximo passo selecione a branch para deploy (master, na maioria dos casos).

  8. Em seguida, será feita sua configuração automática. Caso dê erro na hora de configurar, selecione Skip and configure manually e então proceed.

  9. Em Project Build Configuration. Caso esteja fazendo deploy de WEB(front) selecione IONIC. Caso não, selecione OTHER/MANUAL e marque Android & Docker on Ubuntu 20.04..

  10. Em App icon, selecione o icone (ou dê Skip for now) .

  11. Em Register Webhook dê Skip the Webhook Registration.

  12. Feito todos os passos, selecione a nuvenzinha.

  13. Após realizado o build, no pathing do build, selecione a área do aplicativo, como mostrado:

  14. Dentro do app, selecione Workflow, que fica ao lado de Build na parte superior.

Etapa 2A: Deploy (WEB)

  1. No projeto local, dentro de package.json, em scripts, cole os códigos abaixo:

    "build-prod": "node --max_old_space_size=6144 ./node_modules/@angular/cli/bin/ng build --prod",

"deploy-prod": "npx firebase deploy -P <nome do projeto no firebase>"

Envie o código para o gitlab, após feitas as mudanças

(o nome do projeto no firebase pode ser encontrado em .firebaserc, dentro do projeto).

  1. Em workflow, selecione ** + ** . Em seguida selecione ALL, no canto superior direito.

  2. Digite NPM e selecione Run NPM Command.

  3. Após aberto o step, escreva install dentro do comando, como mostrado abaixo:

  4. Novamente selecione ** + ** , adicione o step Run NPM Command e escreva build-prod.

  5. Novamente selecione + , adicione o step Run NPM Command e escreva deploy-pro-prod.

  6. Dentro do projeto local, na linha de comando rode firebase login:ci.

  7. Voltando para o Bitrise, vá em Secrets. Selecione Add New. Escreva FIREBASE_TOKEN na parte de key, na parte de value, cole a chave que foi gerada na linha de comando.

  8. Feito isso, volte para workflow, e no canto superior direito selecione **Build.**Coloque a branch para o build ( deve ser a mais atualizada) e pronto, será feito o deploy.

Etapa 2B: Deploy (API)

  1. Em workflow, selecione ****** + ** . Em seguida selecione ALL, no canto superior direito.
  2. Digite NPM e selecione Run NPM Command.
  3. Após aberto o step, escreva install dentro do comando, como mostrado abaixo:
  4. Novamente selecione ** + ** e adicione o step Heroku Deploy.
  5. Dentro do step, vá até **$HEROKU_API_TOKEN,**para conseguir esse token, vá no terminal local e dê **heroku auth:token,**dentro do clone do repositório do heroku.
  6. Abaixo, em **$HEROKU_APP_ID,**insira o nome do projeto(vê se na url, por ex: harryapi.heroku.com, o ID é harryapi).
  7. por ultimo, em Force push to Heroku repository?marquetrue.
  8. Feito isso, volte para workflow, e no canto superior direito selecione **Build.**Coloque a branch para o build (branch do gitlab, deve ser a mais atualizada) e pronto, será feito o deploy.

Etapa 2C: Deploy (Android)

Antes de fazer os steps no bitrise, é necessário criar o apk do app pra enviar pra playStore.

link do passo a passo em inglês de como criar um apk: (https://ionicframework.com/docs/deployment/play-store)

link para baixar jarsigner, keytool, zipalign:

(Tools - Baixar - 4shared - Pablo Sena)

Caso queira baixar diretamente do java procure java development kit.

link para baixar release-key ja pronta:

(Tools - Baixar - 4shared - Pablo Sena)

  1. Dentro do projeto do Gitlab, no terminal rode ionic cordova build android --prod --release
  2. Feito isso, rode keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 Dentro do local onde o programa keytool está baixado (só é necessário criar uma vez, depois basta re-utilizar a chave).
  3. depois, para assinar o APK rode dentro do local aonde o jarsigner está baixado (Coloque a sua keystore na mesma pasta onde está o jarsigner). jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore alias_name
  4. Após isso, rode zipalign -v 4 .apk .apk
  5. Com Isso o apk será criado e já pode ser aceito na playstore, pela google play console(Se você baixou o java build tools o apk normalmente pode ser encontrado em /path/to/Android/ sdk/build-tools/VERSION/zipalign caso não tenha sido especificado no passo acima).
  6. Para submeter o app, basta acessar https://play.google.com/console/ e selecionar o app pra que deseja colocar o apk.

PASSOS PARA COLOCAR O APP NA PLAYSTORE

  1. Na área “TODOS OS APPS” da playstore selecione o app que deseja colocar o seu apk novo, lembrando que se você não for o dono da conta é possível ter acesso apenas aos app já criados, não é possível criar um novo.

  2. Após selecionado o app desejado, vá em “CONFIGURAR O APP” e responda as perguntas necessárias.

  3. Após respondido as perguntas da play store vá em “Publicar o app na google play” e selecione “Selecionar países e regiões” e indique para quais países o app vai estar acessível na play store.

  4. Dentro de “Publicar o app na google play” selecione “Criar nova versão” e envie o seu apk criado para a play store.

  5. Clique em “Salvar” e em seguida “Avaliar versão”.

  6. Caso não tenha nenhum erro, selecione “Iniciar lançamento da versão.”

  7. Agora apenas aguarde a revisão do app (Demora uns dias).

  8. Voltando para o bitrise, no workflow do deploy web, selecione Workflow +, como ilustrado abaixo:

  9. Crie um workflow chamando Android.

  10. Dentro do workflow Android, selecione + .

  11. Em seguida selecione ALL, no canto superior direito.

  12. Digite NPM e selecione Run NPM Command.

  13. Após aberto o step, escreva install dentro do comando, como mostrado abaixo:

  14. Novamente em workflow, selecione + , adicione Run NPM Command, e digite install -g cordova

  15. Novamente em workflow, selecione + , e adicione Android SDK Update.

  16. em Android SDK Platform-tools version selecione stable, como abaixo:

  17. Agora no projeto local, dentro de package.json, em scripts, cole os códigos abaixo:

    "www-create": "mkdir www",

    "add-android": "cordova platform add android",

    "android-prod": "ionic cordova build android --prod --release",

Envie o código para o gitlab, após feitas as mudanças.

  1. Novamente em workflow, selecione + , adicione Run NPM Command, e digite www-create.
  2. Novamente em workflow, selecione + , adicione Run NPM Command, e digite add-android.
  3. Novamente em workflow, selecione + , adicione Run NPM Command, e digite android-prod.
  4. Agora selecione Code Signing, no canto superior.
  5. Dentro de Code Signing no campo com o nome “ANDROID KEYSTORE FILE”, adicione sua Keystore file, que obtemos no passo 2 de criar o apk.
  6. Voltando para workflow, selecione + e adicione Android Sign.
  7. Dentro de Android sign, em App file path adicione o pathing do app sem estar assinado.
  8. Abaixo, em Keystore URL adicione a path url da keystore, em value.
  9. Nos passos seguintes dentro de Android Sign, preencha os valores de acordo com as variáveis geradas pela Keystore.
  10. Novamente em workflow, selecione + , adicione Run NPM Command, e digite zipalign -v 4 app-release-bitrise-signed.apk NewToGoogle.apk.
  11. Novamente em workflow, selecione + e adicione Google Play Deploy.
  12. Dentro do Google Play Deploy, no primeiro campo para preencher você irá precisar de uma service account no formato JSON, ela é gerada na play store e apenas o dono da conta de desenvolvedor consegue criar ela, peça pra ele criar uma pra você EXCLUSIVA para o aplicativo que você está enviando pra loja, essas chaves são únicas cada app tem a sua.
  13. Vá novamente em “Code Signing”, e no ultimo campo, “Generic file storage” coloque sua service account.
  14. Voltando para o worflow, dentro da google play deploy no primeiro campo, selecione sua service account, você pode encontra-la através do nome que a salvou no code signing.
  15. Em “Package name” coloque o nome do pacote, é o mesmo nome colocado na configXML do projeto, nunca altere esse nome após ter enviado o app para a loja, ele reconhece que é o mesmo app através desse nome.
  16. em Track, selecione production:
  17. E por ultimo, selecione a localização do mapping.txt file, atribuindo a value.
  18. Feito isso, clique em Build, ao lado de workflow no canto superior.
  19. Então, no canto superior direito selecione Start/Schedule Build. Coloque a branch para o build (branch do gitlab, deve ser a mais atualizada) e pronto, será feito o deploy.

** **

OBS: Tokens devem ser criados por pessoas que não vão sair da empresa, pois caso quem criou um token pare de trabalhar na Atla o CI/CD que ele criou para de funcionar junto.