CI/CD Bitrise
Etapa 1: Criar Projeto (caso ainda não tenha sido criado)
-
A partir da dashboard, selecione Add new App.
-
Selecione a Add New App on web UI
-
No primeiro passo, selecione Private
-
No segundo passo, logue-se no gitlab e selecione o repositório que deseja fazer o deploy.
-
Em Setup repository access selecione I need to. Copie a chave SSH e selecione GITLAB SETTINGS.
-
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.
-
No próximo passo selecione a branch para deploy (master, na maioria dos casos).
-
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.
-
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..
-
Em App icon, selecione o icone (ou dê Skip for now) .
-
Em Register Webhook dê Skip the Webhook Registration.
-
Feito todos os passos, selecione a nuvenzinha.
-
Após realizado o build, no pathing do build, selecione a área do aplicativo, como mostrado:

-
Dentro do app, selecione Workflow, que fica ao lado de Build na parte superior.
Etapa 2A: Deploy (WEB)
-
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).
-
Em workflow, selecione ** + ** . Em seguida selecione ALL, no canto superior direito.
-
Digite NPM e selecione Run NPM Command.
-
Após aberto o step, escreva install dentro do comando, como mostrado abaixo:

-
Novamente selecione ** + ** , adicione o step Run NPM Command e escreva build-prod.
-
Novamente selecione + , adicione o step Run NPM Command e escreva deploy-pro-prod.
-
Dentro do projeto local, na linha de comando rode firebase login:ci.
-
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.
-
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)
- Em workflow, selecione ****** + ** . Em seguida selecione ALL, no canto superior direito.
- Digite NPM e selecione Run NPM Command.
- Após aberto o step, escreva install dentro do comando, como mostrado abaixo:

- Novamente selecione ** + ** e adicione o step Heroku Deploy.
- 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.
- Abaixo, em **$HEROKU_APP_ID,**insira o nome do projeto(vê se na url, por ex: harryapi.heroku.com, o ID é harryapi).
- por ultimo, em Force push to Heroku repository?marquetrue.
- 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)
- Dentro do projeto do Gitlab, no terminal rode ionic cordova build android --prod --release
- 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).
- 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
- Após isso, rode zipalign -v 4 .apk .apk
- 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).
- 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
-
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.
-
Após selecionado o app desejado, vá em “CONFIGURAR O APP” e responda as perguntas necessárias.

-
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.

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

-
Clique em “Salvar” e em seguida “Avaliar versão”.
-
Caso não tenha nenhum erro, selecione “Iniciar lançamento da versão.”
-
Agora apenas aguarde a revisão do app (Demora uns dias).
-
Voltando para o bitrise, no workflow do deploy web, selecione Workflow +, como ilustrado abaixo:

-
Crie um workflow chamando Android.
-
Dentro do workflow Android, selecione + .
-
Em seguida selecione ALL, no canto superior direito.
-
Digite NPM e selecione Run NPM Command.
-
Após aberto o step, escreva install dentro do comando, como mostrado abaixo:

-
Novamente em workflow, selecione + , adicione Run NPM Command, e digite install -g cordova
-
Novamente em workflow, selecione + , e adicione Android SDK Update.
-
em Android SDK Platform-tools version selecione stable, como abaixo:

-
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.
- Novamente em workflow, selecione + , adicione Run NPM Command, e digite www-create.
- Novamente em workflow, selecione + , adicione Run NPM Command, e digite add-android.
- Novamente em workflow, selecione + , adicione Run NPM Command, e digite android-prod.
- Agora selecione Code Signing, no canto superior.
- 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.
- Voltando para workflow, selecione + e adicione Android Sign.
- Dentro de Android sign, em App file path adicione o pathing do app sem estar assinado.
- Abaixo, em Keystore URL adicione a path url da keystore, em value.
- Nos passos seguintes dentro de Android Sign, preencha os valores de acordo com as variáveis geradas pela Keystore.
- Novamente em workflow, selecione + , adicione Run NPM Command, e digite zipalign -v 4 app-release-bitrise-signed.apk NewToGoogle.apk.
- Novamente em workflow, selecione + e adicione Google Play Deploy.
- 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.
- Vá novamente em “Code Signing”, e no ultimo campo, “Generic file storage” coloque sua service account.
- 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.
- 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.

- em Track, selecione production:

- E por ultimo, selecione a localização do mapping.txt file, atribuindo a value.
- Feito isso, clique em Build, ao lado de workflow no canto superior.
- 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.