--- title: Tutorial - OnBoarding tags: Incodde --- # Como iniciar um projeto com o git, docker e etc. ## Comandos inicias 1. Fazer um Fork do repositório que irá trabalhar 2. Criar uma pasta na sua máquina com o nome do repositório 3. Executar o comando `git init` 4. Executar o comando `git remote add upstream link-do-repo-original` - Exemplo: https://github.com/repo/projeto 5. Executar o comando `git fetch upstream` para puxar os arquivos do repositório original. 6. Executar o comando `git checkout -b master upstream/master` para criar um branch master local semelhante. 7. Executar o comando `git remote add origin link-do-fork` para vincular o repositório da sua conta forkeado. 8. Executar o comando `git checkout -b nome-da-branch` para criar o branch que será feito a task. - Obs. O nome do branch deverá seguir três os padrões: - feat/descricao-da-task: para novas featues; - fix/descricao-da-task: para correções; - refactor/descricao-da-task: para refatoração de código. ## Configuração de arquivo .env Ao abrir um projeto deverá ser criado na raiz o arquivo development.env para colocar as variáveis ambiente que irá trabalhar (pedir dados a um colaborador): ```bash # FACEBOOK TOKEN= PAGING= API_HOST= API_VERSION= #MAILGUN MAILGUN_KEY= MAILGUN_DOMAIN= #HASURA HASURA_ADMIN_SECRET= DATA_WAREHOUSE_URL= # RABBITMQ AMQL_HOST=127.0.0.1 AMQL_PORT=5672 AMQL_USER=guest AMQL_PASSWORD=guest #REDIS REDIS_HOST=127.0.0.1 REDIS_PORT=6379 REDIS_DB=0 REDIS_PASSWORD=root LOGGER=error,warn,log #HEALTHCHECKS HEALTH_CHECK_GETFACEBOOKACCOUNTSTATUS= HEALTH_CHECK_VERIFYSTATUSACCOUNTCHANGED= HEALTH_CHECK_GETTIMEZONEFACEBOOKACCOUNT= HEALTH_CHECK_GETCURRENCYFACEBOOKACCOUNT= HEALTH_CHECK_GETPERMISSIONFACEBOOKACCOUNT= HEALTH_CHECK_GETADSFROMFACEBOOKADS= HEALTH_CHECK_GETINSIGHTS= HEALTH_CHECK_GETBREAKDOWNSBYCOUNTRY= HEALTH_CHECK_GETBREAKDOWNSBYDEVICE= # LOGGER LOGGER=error,warn,log ``` ## Baixando Containers Para usar as aplicações é necessário das imagens em docker do rabbitmq, mongodb e redis. Instale o docker e execute os comandos abaixo: ```bash $ docker run -d -p 15672:15672 -p 5672:5672 -p 25676:25676 --hostname my-rabbit --name some-rabbit rabbitmq:3-management $ docker container run -d -p 27017-27019:27017-27019 -v mongodbdata:/data/db --name mongodb mongo:4.0.4 $ docker container run --name redis -p 6379:6379 -d redis:alpine ``` ## Fazendo um commit Após fazer a alteração, é só digitar os comandos para fazer o commit: ```bash # Bom sempre manter o branch local atualizado antes de fazer um push. git pull upstream master --rebase git add . git commit -m 'Feat: A concise message' git push -f origin feat/new-integration ``` ## Fazendo um PR e WorkFlow Após comitar tudo faça uma Pull Request para o staging para ir para a code review. Você pode seguir esse padrão para ficar bem explicativo para quem for revisar: ![](https://i.imgur.com/IwCUIUt.png) - Obs. Se tiver conflitos mesmo depois de dar o git pull, esperar task atual em staging subir pra prod, aí sim fazer um pull da master novamente, resolver conflitos na branch local e enviar atualização para a PR; ## Workflow 1. Colocar o link do PR nos comentários do card; 2. Mover card para Code Review; 3. Após CR mover card para to Deploy, SOMENTE após as aprovações. 4. Merge em Staging: Verificar se o ambiente está livre para merge (não tem nenhuma outra task sendo testada) e aplica o 'Rebase and merge'; 5. Mover card para in QA: SOMENTE uma task deve estar sendo testada em staging; 6. Após validada, abrir PR de staging para master: Colocar o link do Pull Request nos comentários da task e aguardar code review; 7. A PR aprovada, fazer o merge em Master e mover o card para Validate(prod). ## Testando no Banco de Dados Se caso quiser testar uma nova funcionalidade, após ir para staging você pode acessar o ambiente do graphql na url: https://api-staging.adireto.com/graphql ou pelo Hasura. ```bash # Write your query or mutation here mutation asd1 { authenticator(input: { email: "email", password: "password" }) { access_token } } query testando { reportsDatesByURLInDatePeriod( finalDate:"2020-09-01", startDate: "2020-09-01", url: "impermeabilizabrasil.com/impermeabilizacao" ) { summaries { url date updatedAt } } } ``` **Tem algo que não estava no documento?** Não deixe de nos avisar!