Skip to content

Commit

Permalink
Merge pull request #7 from fga-eps-mds/develop
Browse files Browse the repository at this point in the history
Atualizando branch principal
  • Loading branch information
MarcosNBJ committed May 5, 2022
2 parents 5f09553 + a1a3d4d commit ec56c67
Show file tree
Hide file tree
Showing 52 changed files with 3,409 additions and 12,187 deletions.
10 changes: 10 additions & 0 deletions .firebase.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
FIREBASE_TYPE=
FIREBASE_PROJECT_ID=
FIREBASE_PRIVATE_KEY_ID=
FIREBASE_PRIVATE_KEY=
FIREBASE_CLIENT_EMAIL=
FIREBASE_CLIENT_ID=
FIREBASE_AUTH_URI=
FIREBASE_TOKEN_URI=
FIREBASE_AUTH_PROVIDER=
FIREBASE_CLIENT_X509=
8 changes: 8 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## Motivação


## Mudanças feitas


## Tarefa relacionada

38 changes: 12 additions & 26 deletions .github/workflows/ci_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ jobs:
steps:
- name: Copy repository
uses: actions/checkout@v2

with:
fetch-depth: 0
- name: Use Node.js 14.x
uses: actions/setup-node@v1
with:
Expand All @@ -23,6 +24,12 @@ jobs:
- name: Run Tests & Coverage
run: npm run test:cov

- name: SonarCloud Scan
uses: sonarsource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

- name: Coveralls
uses: coverallsapp/github-action@master
with:
Expand All @@ -31,7 +38,7 @@ jobs:
deploy-hom:
runs-on: ubuntu-latest
needs: ci
if: github.ref == 'refs/heads/develop' && github.event_name != 'pull_request'
if: (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main') && github.event_name != 'pull_request'

steps:
- name: Deploy to Digital Ocean
Expand All @@ -41,29 +48,8 @@ jobs:
username: ${{ secrets.SSH_USER }}
password: ${{ secrets.SSH_PASSWORD }}
script: |
cd projects/2021.1-Cartografia-social-api-gateway
docker-compose -f deploy/hom/docker-compose.yml down
cd projects/2021.2-Cartografia-social-api-gateway
docker-compose down
git checkout develop
git pull origin develop -f
docker-compose -f deploy/hom/microsservices-compose.yml --env-file deploy/hom/.env.hom -p microsservico up -d --build
docker-compose -f deploy/hom/docker-compose.yml -p gateway up -d --build
deploy-prod:
runs-on: ubuntu-latest
needs: ci
if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request'

steps:
- name: Deploy to Digital Ocean
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SSH_HOST_PROD }}
username: ${{ secrets.SSH_USER_PROD }}
password: ${{ secrets.SSH_PASSWORD_PROD }}
script: |
cd projects/2021.1-Cartografia-social-api-gateway
docker-compose -f deploy/prod/docker-compose.yml down
git checkout main
git pull origin main -f
docker-compose -f deploy/prod/microsservices-compose.yml --env-file deploy/prod/.env.prod -p microsservico up -d --build
docker-compose -f deploy/prod/docker-compose.yml --env-file deploy/prod/.env.prod up -d --build
docker-compose up -d --build gateway-prod rabbitmq mongo
33 changes: 24 additions & 9 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,36 @@ jobs:
runs-on: ubuntu-latest

steps:
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%d-%m-%Y')"
- name: Get file name
id: name
run: echo "::set-output name=file_name::fga-eps-mds-2021-2-Cartografia-social-api-gateway-$(TZ='America/Sao_Paulo' date +'%m-%d-%Y-%H-%M-%S')-${{github.ref_name}}"

- name: Copy repository
uses: actions/checkout@v2
- run: mkdir -p /tmp/sonar/
- run: curl --location --request POST 'https://sonarcloud.io/api/measures/component_tree?component=fga-eps-mds_2021.1-Cartografia-social-api-gateway&metricKeys=files,functions,complexity,comment_lines_density,duplicated_lines_density,coverage,ncloc,security_rating,tests,test_success_density,test_execution_time,reliability_rating&ps=500' > /tmp/sonar/fga-eps-mds-2021_1-Cartografia-social-api-gateway-${{ steps.date.outputs.date }}.json
- run: wget $METRICS_URL -O ${{ steps.name.outputs.file_name }}.json
env:
METRICS_URL: ${{ secrets.METRICS_URL }}
- uses: actions/upload-artifact@v2
with:
name: fga-eps-mds-2021_1-Cartografia-social-api-gateway-${{ steps.date.outputs.date }}.json
path: /tmp/sonar/fga-eps-mds-2021_1-Cartografia-social-api-gateway-${{ steps.date.outputs.date }}.json
name: ${{ steps.name.outputs.file_name }}.json
path: ${{ steps.name.outputs.file_name }}.json

- uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: true
files: |
/tmp/sonar/fga-eps-mds-2021_1-Cartografia-social-api-gateway-${{ steps.date.outputs.date }}.json
${{ steps.name.outputs.file_name }}.json
- name: Send metrics to docs repo
uses: dmnemec/copy_file_to_another_repo_action@v1.1.1
env:
API_TOKEN_GITHUB: ${{ secrets.GIT_TOKEN }}
with:
source_file: ${{ steps.name.outputs.file_name }}.json
destination_repo: 'fga-eps-mds/2021-2-Cartografia-social-Doc'
destination_folder: 'analytics-raw-data/2021-2-Cartografia-social-api-gateway'
user_email: ${{ secrets.GIT_EMAIL}}
user_name: ${{ secrets.GIT_USER }}
commit_message: New metrics from ${{ github.event.repository.name }}


3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,6 @@ lerna-debug.log*

# firebase config file
.*.env

# Make file
.Makefile.swp
79 changes: 62 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

# 2021.1-Cartografia-social-api-gatway
# 2021.2-Cartografia-social-api-gatway

Repositório do gateway do projeto da Cartografia social

Expand All @@ -17,37 +17,66 @@ Repositório do gateway do projeto da Cartografia social

## [**Dependências**](#Sumário)

Para a execução local da Wiki do projeto serão necessárias as seguintes dependências:
Para a execução local da aplicação será necessário ter instaladas as seguintes ferramentas:

* [NodeJs](https://nodejs.org/en/)
* [VSCode](https://code.visualstudio.com/) (Opcional)
* [Npm](https://docs.npmjs.com/getting-started)
* [Docker Compose](https://docs.docker.com/compose/install/)

## [**Execução**](#Sumário)

### Installation
### **Instalação**

[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=fga-eps-mds_2021.1-Cartografia-social-api-gateway&metric=alert_status)](https://sonarcloud.io/dashboard?id=fga-eps-mds_2021.1-Cartografia-social-api-gateway)

[![Coverage Status](https://coveralls.io/repos/github/fga-eps-mds/2021.1-Cartografia-social-api-gateway/badge.svg?branch=main)](https://coveralls.io/github/fga-eps-mds/2021.1-Cartografia-social-api-gateway?branch=main)

### Faça um clone do repositório

```bash
$ git clone https://github.com/fga-eps-mds/2021.1-Cartografia-social-api-gateway
```

### Instalando as dependências e Configurando variáveis de ambiente

```bash
$ cd 2021.1-Cartografia-social-api-gateway
$ npm install
#caso dê erro de permissão, tente executar com o comando sudo npm install
```
Crie um projeto no [firebase](https://firebase.google.com/docs/android/setup?hl=pt) e crie um arquivo '.firebase.env.' no diretório raiz. Se baseie no arquivo '.firebase.env.example' para o preenchimento das configurações.

### Executando a aplicação

### Running the app
Para buildar a aplicação os seguintes comandos podem ser usados:

```bash
# development
$ npm run start
# local
$ make debug-build
```
ou

# watch mode
$ npm run start:dev
```bash
# local
$ docker-compose up --build gateway-debug rabbitmq mongo
```
Caso a execução falhe por causa que o serviço do rabbitmq ja esteja em execução, pode ser usado o seguinte comando para parar o processo e depois executar o comando anterior novamente:
```bash
$ sudo -u rabbitmq rabbitmqctl stop
```
Escolha um dos ambientes para a execução

```bash
# development ambient
$ docker-compose up gateway-dev mongo

# debug ambient
$ docker-compose up gateway-debug mongo

# production mode
$ npm run start:prod
$ docker-compose up gateway-prod mongo
```

### Test
### Testes

```bash
# unit tests
Expand Down Expand Up @@ -99,14 +128,15 @@ De forma que o elemento **PREFIXO** siga o seguinte padrão
| DOCS | Documentação | `[DOCS] Melhorar README`|
| DEVOPS | Integração, DevOps | `[DEVOPS] Implementar CI/CD`|
| USXX | História de Usuário, em que *XX* se refera ao número da história de usuário | `[US12] Questionário para criação de uma nova comunidade`|
| IMPROVE | Melhoria ou adição de funcionalidades não correlacionadas a uma História de Usuário | `[IMPROVE] Adiciona regras de navegação ao frontend`|



### [**Branches**](#Sumário)

Para a padronização das branches foi tomada uma adaptação do modelo padrão do [gitflow](https://nvie.com/posts/a-successful-git-branching-model/) conforme representado pelo diagrama abaixo:

![gitflow-adapted](./images/gitflow_adapted.png)
![gitflow-adapted](./images/gitflow_adapted_tag.png)

Esse modelo segue a seguinte categorização para as respectivas branches:

Expand All @@ -120,8 +150,6 @@ Esse modelo segue a seguinte categorização para as respectivas branches:

* ***Support*** - As Branches *Support* servem para armazenar modificações que integram o projeto mas não representam funcionalidades (ou *features*), como documentação, Integração Contínua, Deploy Contínuo e demais configurações focadas na estrutura do projeto.

* ***Release*** - Esse tipo de branch representa uma estabilização dos recursos presentes na *develop* para uma integração com os dados existentes na *master*, representando um próximo ciclo de lançamento.

#### **Nomenclatura**

A Nomenclatura das branches deve seguir o seguinte padrão
Expand All @@ -132,7 +160,6 @@ A Nomenclatura das branches deve seguir o seguinte padrão
| Develop | develop |
| Feature | feature/<span style="color:#fc6a03">[NUMERO-USER-STORY]</span>-<span style="color:#ed820e">[BREVE-DESCRIÇÃO-EM-INGLES]</span> <br> Ex.: `feature/01-mark-point-on-map` |
| Support | support/<span style="color:#ffcd01">[BREVE-DESCRIÇÃO-EM-INGLES]</span> <br> Ex.: `support/document-contribution-guide` |
| Release | release/v-<span style="color:#03c0c1">[NUMERO-DA-VERSAO]</span> <br> Ex.: `release/v-0.1` |
| Hotfix | hotfix/<span style="color:#cf513d">[BREVE-DESCRIÇÃO-EM-INGLES]</span> <br> Ex.: `hotfix/remove-second-callback` |

### [**Commits**](#Sumário)
Expand Down Expand Up @@ -251,7 +278,25 @@ Indica a reverão de um commit anterior.

### [**Pull Requests**](#Sumário)

Deve seguir o mesmo padrão de nomenclatura da issue.
Deve seguir o mesmo padrão de nomenclatura da issue, e os usuŕios devem se atentar a linkar a respectiva issue a ser fechada pelo pull request.

#### **Nomenclatura**

A Nomenclatura de Pull Requests deve seguir o padrão:

```
[PREFIXO] Breve descrição do Pull Request em português
```

De forma que o elemento **PREFIXO** siga o seguinte padrão

| Prefixo | Tema | Exemplo |
| --- | --- | --- |
| DOCS | Documentação | `[DOCS] Melhorar README`|
| DEVOPS | Integração, DevOps | `[DEVOPS] Implementar CI/CD`|
| USXX | História de Usuário, em que *XX* se refera ao número da história de usuário | `[US12] Questionário para criação de uma nova comunidade`|
| IMPROVE | Melhoria ou adição de funcionalidades não correlacionadas a uma História de Usuário | `[IMPROVE] Adiciona regras de navegação ao frontend`|


## [**Licença**](#Sumário)

Expand Down
17 changes: 10 additions & 7 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ services:
command: npm run start:debug
volumes:
- .:/var/www/gateway
- /var/www/gateway/node_modules
env_file:
- .env
ports:
Expand All @@ -21,6 +22,7 @@ services:
hostname: gateway
volumes:
- .:/var/www/gateway
- /var/www/gateway/node_modules
env_file:
- .env
command: npm run start:dev
Expand All @@ -36,6 +38,7 @@ services:
hostname: gateway
volumes:
- .:/var/www/gateway
- /var/www/gateway/node_modules
command: npm run start:prod
env_file:
- .env
Expand All @@ -49,26 +52,26 @@ services:
rabbitmq:
image: rabbitmq:3-management
container_name: rabbitmq
restart: always
ports:
- "5672:5672"
- "15672:15672"
networks:
- backend
volumes:
- ./rabbit_data:/var/lib/rabbitmq/

mongo:
container_name: mongo
image: mongo
volumes:
- mongo_data:/data/db
- ./data/db:/data/db
ports:
- 27017:27017
networks:
- backend
- backend

networks:
backend:
name: cartografia-network
driver: bridge

volumes:
mongo_data:
driver: bridge
Binary file added images/gitflow_adapted_tag.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit ec56c67

Please sign in to comment.