Skip to content

Commit

Permalink
Merge pull request #42 from fiap-8soat-tc-one/feature/k6-auto-testing
Browse files Browse the repository at this point in the history
Feature/k6 auto testing
  • Loading branch information
jcmdsbr authored Oct 1, 2024
2 parents 92e5308 + 0aaa884 commit 2798295
Show file tree
Hide file tree
Showing 376 changed files with 120,377 additions and 3,493 deletions.
63 changes: 63 additions & 0 deletions .github/workflows/github-pipeline.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Publish Docker image

on:
push:
branches:
- main
workflow_dispatch:


jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
permissions:
packages: write
contents: write
attestations: write
id-token: write

steps:
- name: Check out the repo
uses: actions/checkout@v4

- name: Set up the date and revision tag
id: vars
run: |
DATE_TAG=$(date +'%Y%m%d')
REVISION_TAG=$(cat REVISION_TAG || echo "0")
REVISION_TAG=$((REVISION_TAG + 1))
echo "${REVISION_TAG}" > REVISION_TAG
echo "TAG=${DATE_TAG}.${REVISION_TAG}" >> $GITHUB_ENV
- name: Set up Docker Build
uses: docker/setup-buildx-action@v3

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Build and push Docker image
id: push
uses: docker/build-push-action@v6
with:
context: .
load: true
tags: |
${{ secrets.DOCKER_USERNAME }}/fiap-8soat-tc:backend-${{ env.TAG }}
${{ secrets.DOCKER_USERNAME }}/fiap-8soat-tc:latest
platforms: linux/amd64

- name: Push Docker image (amd64)
run: |
docker push ${{ secrets.DOCKER_USERNAME }}/fiap-8soat-tc:backend-${{ env.TAG }}
docker push ${{ secrets.DOCKER_USERNAME }}/fiap-8soat-tc:latest
- name: Commit revision tag
run: |
git config --global user.name "GitHub Actions"
git config --global user.email "actions@github.com"
git tag release-${{ env.TAG }}
git push origin release-${{ env.TAG }}
44 changes: 0 additions & 44 deletions .github/workflows/sonarcloud.yml

This file was deleted.

3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@
.vscode/
target/
code_quality_service/
.DS_Store
.DS_Store
qodana.yaml
18 changes: 10 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
FROM maven:3.8.4-openjdk-17-slim AS build

WORKDIR /app

COPY pom.xml /app/pom.xml

RUN mvn dependency:go-offline

COPY src /app/src

RUN mvn clean package -DskipTests

FROM openjdk:17-jdk-slim AS deploy

WORKDIR /app
LABEL org.opencontainers.image.title="TC Backend API"
LABEL org.opencontainers.image.description="Backend API para o projeto TC da FIAP 8SOAT"
LABEL org.opencontainers.image.version="1.0.0"
LABEL org.opencontainers.image.url="https://github.com/fiap-8soat-tc-one/tc-backend-s2"
LABEL org.opencontainers.image.source="https://github.com/fiap-8soat-tc-one/tc-backend-s2"
LABEL org.opencontainers.image.created="2024-09-03"
LABEL org.opencontainers.image.authors="FIAP 8SOAT TEAM 32"
LABEL org.opencontainers.image.licenses="GNU General Public License v3.0"

WORKDIR /app
COPY --from=build /app/target/*.jar /app/tc-backend-api.jar

ENTRYPOINT ["java", "-jar", "tc-backend-api.jar"]
ENTRYPOINT ["java", "-jar", "tc-backend-api.jar"]
54 changes: 32 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,19 @@ As informações dispostas no sistema de pedidos precisarão ser gerenciadas pel

## Configuração de Ambiente de Desenvolvimento Local :heavy_check_mark:

[Clique aqui para ser redirecionado para a wiki de configuração do ambiente de desenvolvimento local](https://github.com/fiap-8soat-tc-one/tc-backend/blob/main/docs/config/README.md)
[Clique aqui para ser redirecionado para a wiki de configuração do ambiente de desenvolvimento local](https://github.com/fiap-8soat-tc-one/tc-backend-s2/blob/main/docs/config/README.md)

## Configuração do Ambiente Docker/Docker Compose :heavy_check_mark:

- **A aplicação está configurada para o Flyway gerar as tabelas no PostgreSQL. Abra o DBeaver ou a ferramenta de sua escolha e verifique se as tabelas do sistema foram criadas.**

[Clique aqui para ser redirecionado para a wiki de configuração do ambiente Docker](https://github.com/fiap-8soat-tc-one/tc-backend/blob/main/docs/docker/README.md)
[Clique aqui para ser redirecionado para a wiki de configuração do ambiente Docker](https://github.com/fiap-8soat-tc-one/tc-backend-s2/blob/main/docs/docker/README.md)

## Detalhamento sobre Stress Testing e Smoke Testing :heavy_check_mark:

- **Dentro da pasta scripts/tests contém todos os scripts k6 para efetuar a execução os cenários de smoke-test e stress-test que foram realizados para configurar de maneira efetiva o os requests/limits da aplicação juntamente com o HPA**

[Clique aqui para ser redirecionado para a wiki de testes](https://github.com/fiap-8soat-tc-one/tc-backend-s2/blob/main/tests/README.md)

## Manual/Documentação de Funcionalidades (Swagger/Open API) :heavy_check_mark:

Expand Down Expand Up @@ -120,7 +126,7 @@ sequenceDiagram

```mermaid
sequenceDiagram
Fake Pagamento->>+Sistema: 1 - [POST] http://localhost:8080/api/public/v1/hook/orders/payment
Fake Pagamento->>+Sistema: 1 - [POST] http://localhost:8080/api/public/v1/hook/orders/payments
Sistema-->>-Fake Pagamento: Return Status Code 200 and result SUCCESS/ERROR
```

Expand Down Expand Up @@ -165,32 +171,36 @@ sequenceDiagram

## Dicionário de Linguagem Onipresente/Ubíqua

| Palavra | Descrição |
|---------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Lanchonete | Estabelecimento onde a solução/sistema será aplicado. |
| Cliente | Pessoa que realiza pedidos na lanchonete. |
| Cozinha | Setor da lanchonete responsável por preparar todos os produtos do combo. |
| Administrador/Usuário Sistêmico | Pessoa que cadastra produtos no sistema. |
| Sistema de Controle de Pedidos | Sistema que soluciona o problema da lanchonete, automatizando a coleta de pedidos, pagamento e comunicação com a cozinha. |
| Monitor/Terminal | No Contexto da Cozinha: Display onde são exibidos os pedidos na cozinha pendentes de preparo. No Contexto do Cliente: Display onde o cliente consegue acompanhar o status dos seus pedidos. |
| Promoção | Oferta de produtos com desconto customizada por cliente. |
| Pagamento | Ação realizada pelo cliente ao fazer a leitura do QR code do Mercado Pago para realizar o pagamento do pedido. |
| Pedido | Pedido de combo realizado pelo cliente. |
| RECEIVED/Pedido Recebido | Pedido aguardando pagamento pelo cliente) |
| PENDING/Pedido Pendente | Status do pedido após uma falha no fluxo de pagamento. |
| PREPARING/Pedido Em Preparação | Status do pedido após a após a conclusão do pagamento e encaminhamento para a cozinha iniciar o preparo. |
| READY/Pedido Pronto | Status do pedido após a cozinha terminar o preparo e disponibilizar para retirada pelo cliente. |
| FINISHED/Pedido Finalizado | Status do pedido após ser retirado pelo cliente. |
| CANCELED/Pedido Cancelado | Status do pedido após ser cancelado pelo cliente ou pela cozinha. |
| Acompanhamento | No Contexto de Itens do Pedido: Item que acompanha o hambúrguer, como, por exemplo, batata frita. No Contexto do Pedido: Funcionalidade que permite ao cliente acompanhar o status do seu pedido no monitor. |
| Palavra | Descrição |
|---------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Lanchonete | Estabelecimento onde a solução/sistema será aplicado. |
| Cliente | Pessoa que realiza pedidos na lanchonete. |
| Cozinha | Setor da lanchonete responsável por preparar todos os produtos do combo. |
| Administrador/Usuário Sistêmico | Pessoa que cadastra produtos no sistema. |
| Sistema de Controle de Pedidos | Sistema que soluciona o problema da lanchonete, automatizando a coleta de pedidos, pagamento e comunicação com a cozinha. |
| Monitor/Terminal | No Contexto da Cozinha: Display onde são exibidos os pedidos na cozinha pendentes de preparo. No Contexto do Cliente: Display onde o cliente consegue acompanhar o status dos seus pedidos. |
| Promoção | Oferta de produtos com desconto customizada por cliente. |
| Pagamento | Ação realizada pelo cliente ao fazer a leitura do QR code do Mercado Pago para realizar o pagamento do pedido. |
| Pedido | Pedido de combo realizado pelo cliente. |
| RECEIVED/Pedido Recebido | Pedido aguardando pagamento pelo cliente) |
| PENDING/Pedido Pendente | Status do pedido após uma falha no fluxo de pagamento. |
| PREPARING/Pedido Em Preparação | Status do pedido após a após a conclusão do pagamento e encaminhamento para a cozinha iniciar o preparo. |
| READY/Pedido Pronto | Status do pedido após a cozinha terminar o preparo e disponibilizar para retirada pelo cliente. |
| FINISHED/Pedido Finalizado | Status do pedido após ser retirado pelo cliente. |
| CANCELED/Pedido Cancelado | Status do pedido após ser cancelado pelo cliente ou pela cozinha. |
| Acompanhamento | No Contexto de Itens do Pedido: Item que acompanha o hambúrguer, como, por exemplo, batata frita. No Contexto do Pedido: Funcionalidade que permite ao cliente acompanhar o status do seu pedido no monitor. |

## Event Storming :heavy_check_mark:

[Clique aqui para ser redirecionado para a documentação do event storming](https://miro.com/app/board/uXjVK1Bf4Q4=/)

## Domain Mapping :heavy_check_mark:

![image](https://github.com/fiap-8soat-tc-one/tc-backend/blob/main/assets/domain-mapping.drawio.png)
![image](https://github.com/fiap-8soat-tc-one/tc-backend-s2/blob/main/assets/domain-mapping.drawio.png)

## Desenho de Arquitetura/Infraestrutura proposto :heavy_check_mark:

[Clique aqui para ser redirecionado para o desenho de arquitetura e infraestrutura](https://viewer.diagrams.net/?tags=%7B%7D&lightbox=1&highlight=0000ff&edit=_blank&layers=1&nav=1&title=tc-backend.drawio.png#R%3Cmxfile%20scale%3D%221%22%20border%3D%220%22%3E%3Cdiagram%20name%3D%22Draft%22%20id%3D%22jiXIkiBsy346j2COqR-b%22%3E7Vxbc6O4Ev41qZp5sAuJm3l0nHgztZnabDJ75pynKQyKzQYjlksu8%2Bu3JRBGIAdnArZnjp3EgUYSovvri1oSZ%2Fps%2Ffxb4sarz9Qn4RnW%2FOcz%2FeIMY2ui2fCPUV4KCrYNvaAsk8AvaNqGcBd8JwURCWoe%2BCQtaQUpozTMglgmejSKiJdJNDdJ6JNc7J6GvkSI3SWRusEId54bklaxr4GfrQrqBNsb%2BhUJlitxZ2Q5xZW1KwqXDacr16dPNZJ%2BeabPEkqz4mj9PCMh457Ml%2FmWq1XHEhJlu1Qg089Xf96dO4vn%2FPoqmjnfI%2B3vkVk28%2BiGefnEZW%2BzF8GChOaRT1gr2pl%2B%2FrQKMnIXux67%2BgRSB9oqW4dwhuAwzRL6QGY0pAlQIhpBsfPyHiTJyPPW3qOKJ4AmQtckS16gSFlhZOplnRJJIzyxCsLTRi7Y1kviqiYUjOyS6pZoWFbtbxgGByXP3sA%2Fw34L%2FxiD3MQrUY4YO303XVW8vQ%2FCULDuDOtzk%2F1UTBX404GyDN00FbVolNVqFZ%2BWKOCKxT%2BsduL6AdnU6lFMhuFIYsKCQ3UpWchuSwmZDhpKSm9G%2BTYpoYaUSs61BdRivsY%2FpbjuyvuiHlgOEpc4bttOi%2BOoarfO8YltDsRw3W7xl%2FhgV8tTmmQruqSRG15uqOeyBDZlrimNS9b%2FTbLspRSMm2dUZXvqUrgP6dM0CsAWBzQqSxU9Y915neHQe5onHnnlMXHJv8xNliR7jR%2BWWoQJCaFrj3JPepeG6ObuRqrDyCc0Exx1WurRYazaytODDiAN6WNLUgOEDX1stjTBMPWxUBDJR%2BjGQNx3jkMVeoS9%2BU4wl1VvaAB33siw6eAtZ9ywT4WelfUaYqk68uOSepOa7BALNdz5vcl%2BfshhdyhYH45bN7DMfmShtudGWOG4J%2FpQhqtbIBBVx%2BwQbDxDdp39jB8BRPLTMFgyU5Ux3amo1%2B6ChDc0DUpDtqBZRtdQIGQXzl3vYcmFXRcg%2F0ARfrNpGhcDDh4viJP74JkJ6rzsz8Uqy9hIZcoYgeeeHxnjAMYq9wHAKBl7cEc8993MhX%2BMnjI%2BBfloEUIHRin1AjdkbJhbENzPl0G2yhcjhCfjOFoOBwXTbkBh0oaCoQi0jaHCbL0FhN%2BC7CpfAG3qMQGmLWDA82cyHtwSBx7wgSQKgKwD3%2BfmV6XXsubzIK4wvrgd1A0mGGQ1BIMnbR3VjLZkdG0gyRhvV9Ef1UCf3Lt5mG3VbLUOSmqq1spHKECTlJCHUiGf4hHoYsbEgud5HFLXZ4qJNQxAnGvg0ecF%2FkYl%2BkbX4J9H%2F%2BHtjNPH5WhY%2FdTNBgzEEKAe8iNFxF8Re8eB1cLB7BM0NIMj7SaISRhArPd%2FoaMtP2rs5kYHU9EdUhQxC6n4fc1z%2BNXGDGEzjf%2BZUGDGic6EEcYsZ1Sj87OxjRqFLbjtrEEsSjqmgmpVRPjdwUakDyTzVqWkO51%2ByzS0cMY5QJLLR1IwggOkNFzr5yXLbo69IPUocsZ5yqs0wjtNMzW7HcZtzRD0ADYHOQ2sWW2wIcNUGAJjqKG%2FSNzW4HZLlgE8P8Q42idmgMHEahGFrxlopAuGIYHjstDLIYzE4EbBacoJtf02chR%2B2xjKKAhHIFkFi3tXiKqsZcafvCAwHkkysf7JqbgwSrmJBVeqAUuei2rlddHQBfUeuJCv%2FqoahV4X7cr3AnLt%2Fj97sK91BvtliL8mfuCOMGKx2xwb1YVv%2FMI36SSEWOObz1k69FAA6ZOmM8Nt4IogVDIwgtg%2FclWjwp6A%2Blean830sylKApp2INUPHt91r946%2FeErAZWZf6EZs6zzz3QRQEswMorjj93axh9ji779AqZ3YukNBLez49hUTEdYQ%2BUD0UFy46pMuGrWwk2yKZs2ZTJmadvAE%2BR5EIrGznbOJXZmxtF7M%2BPqZKKhySkMEzVyVEWSc7BUIlKNi3vS95af%2FhQtE5KCvdI%2BuxF4Il%2FtTH8Oa9Z6umsYfUMFMD1u5LEo4s3P1mHlpKFEcySkGAZh1dhIRbPbRNQu1h4mFXdoElU0u01EW4ZdWDXqUtFss93jZm2kqI0atfk4juYZG%2FnPqtUZiglr%2BJkz1WoOqC4vbMRnTFt58So2k2bPO4O9LWPDpkurW81NCgHCDtllKSPB5pDRfUqNMSgntzafPNafczgtjuRSYPBS6N43lm36tuBoD4aL7HRdHpLoijQFUi2mqIj9O0bzEI4R%2BJW8%2FJfVH5vi9H9lc%2Fzk4lk6e6mf3ZAkgIdnsLnQlKJS%2B92evWznjJ2ImbvdsfFOd%2Fw%2BBBzJXOlehNYti8leQiOwsY1Qd%2BjYqJ0r3kNs9IaooQHBtpHfknuUvBEf%2F6Ty%2BOcHPVTDL7J1O5f4Vb%2FYyudqmlmkWfVGBFG692amV0lV5oSdLQ3bvPbYcXYIY%2FCkUZbHDk1f%2BpAvSBKBtU15VoVxIE5KT7pHTznBO3tKeNqhnKXoxKFNZc19GnblT5kDRWMNVSXe4kQHXrQlUq%2Bd9he%2Fd53L%2B3zhZI9W8o4kjwFwTdCTKrfkxvEo80YL13sgkT9K8Sh99D6ezOmvbU5Bxvsypwjbisnr%2FdvT9rTVCbk%2FD3I3JM7SUg4VnlexOxSeERaLowSgTTEFelhA73OC7%2BaPi67pklcn9k6adbSaVelQTP3BdAjZmqxDunEUQbZqqvEE3RN0X4NuteHvsNBtL5k9QfcE3Q7oHkcorsoPnqD7s0C3IxT3SRzSl%2F1F45rY%2B3tYTKsW4RaBMeAxelfwfUtAFmz232erfm5pRtw1sIvWIu%2FiHooZf5n07q58uKV5xnKx0I88JOnHjj4c1fqj2q7G5k7FzdaD3fZulYt%2Bu%2FZFDrYNGxvGWOz6FIqANKPCd00XdGyKbXZ1bXCGWniKt%2Bc1e9CEf%2FIgDfgSPpt9n5uEKcbVly83H%2B62g%2FGgsFMiRw2%2BQUymMTEkoFSjnoOtkNO3py5OxvJIUPuKsay%2FueJnMZe2wlzqx2AuddU4ricAzlbu2vXZtgyfrXbWSOSXQSpbv753fbglGU34vpCiO77rS4uwTzqxT52wGpsMEXaOIn7Qt6%2Bs7QGBfpAQD0QonAJjGFOQoFhGwreFJjQM%2BW4WvmOsBCx8%2FV4NfODkw%2BXvxxpw%2FFIwRRaWYGo67RSGqeGxvVeM9rjCSVtUu5MAfZx97HqyXHzAbBPfjBWuHXxUInu6dr9Tphy3F3e7TtRLKZU3LeTdIu7tuZFmNkU0tNP63koVmjpSpXBeW%2BKr0p%2F6sl9lyA7F%2BYqjYtOEas1vnFA%2F97JyyW%2BV%2FZDXBfvpUEE9cozGKj%2BseIcDErMsUh5ksJel6QMO%2Ff6ICRjq5sCPB%2Fkk9ZKAb7oLSZDl3J5zqz39eic0QhvBH2AqY2b%2B7s%2Frk%2BUe3nKbzYWoumLifN%2FhhaEKL14zjKcNI6cNIwfaMPIwmPvAmpxFt1XvFRDznPK238EUs%2F12rsJ%2BQ6AN37MwT5k0DmCgC3Eb6v0ffQgDyQm6iXjFpuTJ1XbSHkwcKl%2Fe4L2kbPVVxG3M62MvpLmvcmoTU3%2FlnaXSPYZ5eQMMH2Q%2FNWkPMbCDFcowcYbi%2FhFvlCl6dsQvGhyJVzSLV9SKt5V2vGZwmiTuS62YyJVtvQ8W40BhRZ16c539kovDQdGBXvfimKplrz2F5BfFTC%2FWPkX3iUsAPXkRfR9jaH3oWZgR1hr5Nm24FxXA6ea94wWUNq9v1y%2F%2FBQ%3D%3D%3C%2Fdiagram%3E%3C%2Fmxfile%3E)

## Requisitos não funcionais a serem implementados no futuro

Expand Down
1 change: 1 addition & 0 deletions REVISION_TAG
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3
Binary file added assets/tc-backend.drawio-lig.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 2798295

Please sign in to comment.