Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop #42

Merged
merged 7 commits into from
Jan 31, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Continuous Integration
name: continuous-integration


on:
Expand All @@ -11,16 +11,16 @@ on:
- main

jobs:
CI-Pipeline:
ci-pipeline:
runs-on: ubuntu-latest
env:
SPRING_PROFILES_ACTIVE: prod
DB_URL: jdbc:postgresql://localhost:5433/sysagua_db
DB_USERNAME: postgres
DB_PASSWORD: testpassword
DEFAULT_EMAIL: admin@sysagua.com
DEFAULT_PASSWORD: admin123
JWT_SECRET_KEY: your-secret-key
SPRING_PROFILES_ACTIVE: ${{ secrets.SPRING_PROFILES_ACTIVE }}
DB_URL: jdbc:postgresql://postgres-db:5432/sysagua_db
DB_USERNAME: ${{ secrets.DB_USERNAME }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
DEFAULT_EMAIL: ${{ secrets.DEFAULT_EMAIL }}
DEFAULT_PASSWORD: ${{ secrets.DEFAULT_PASSWORD }}
JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }}

steps:
# Checkout do código-fonte
Expand Down Expand Up @@ -55,21 +55,21 @@ jobs:
- name: Start Docker Compose
run: docker-compose up --build -d
env:
DB_PASSWORD: testpassword
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}

# Aguarda que os serviços estejam prontos
- name: Wait for services to be ready
run: |
timeout 120 bash -c '
timeout 300 bash -c '
until echo > /dev/tcp/localhost/8080; do
echo "Waiting for API service..."
sleep 2
done
echo "API service is ready!"'

# permissões gradlew
# Concede permissão de execução ao script Gradle Wrapper
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew
run: chmod +x ./sysagua-api/gradlew

# Execução de testes da API usando Gradle
- name: Run API Tests
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
.env
*.class
.idea
.secrets

# Log file
*.log
Expand Down
6 changes: 4 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
version: '3.8'

services:
# Serviço do banco de dados PostgreSQL
db:
Expand All @@ -8,7 +10,7 @@ services:
POSTGRES_USER: postgres # Usuário padrão do banco de dados
POSTGRES_PASSWORD: ${DB_PASSWORD} # Senha do banco de dados (definida como variável de ambiente)
ports:
- "5433:5432" # Mapeia a porta 5432 do container para a porta 5433 do host
- "5434:5432" # Mapeia a porta 5432 do container para a porta 5434 do host
volumes:
- db-data:/var/lib/postgresql/data # Armazena os dados do banco de forma persistente em um volume
networks:
Expand All @@ -20,7 +22,7 @@ services:
context: ./sysagua-api # Define o diretório do código-fonte da API para o build do Docker
container_name: sysagua-api # Nome do container da API
environment:
SPRING_PROFILES_ACTIVE: prod # Perfil ativo do Spring
SPRING_PROFILES_ACTIVE: test # Perfil ativo do Spring
DB_URL: jdbc:postgresql://postgres-db:5432/sysagua_db # URL de conexão com o banco de dados
DB_USERNAME: postgres # Nome de usuário do banco de dados
DB_PASSWORD: ${DB_PASSWORD} # Senha padrão para autenticação
Expand Down
24 changes: 24 additions & 0 deletions sysagua-api/src/main/resources/application-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
spring:
datasource:
url: ${DB_URL:jdbc:postgresql://localhost:5432/sysagua_db} # Variável de ambiente para o URL do banco de dados, com valor default
username: ${DB_USERNAME:postgres} # Variável de ambiente para o nome de usuário do banco, com valor default
password: ${DB_PASSWORD:testpassword} # Variável de ambiente para a senha do banco, com valor default
driver-class-name: org.postgresql.Driver

jpa:
show-sql: true # Exibe as consultas SQL no console
generate-ddl: true # Gera DDL automaticamente em testes
hibernate:
ddl-auto: update # Atualiza o esquema do banco automaticamente
format-sql: true # Formata as consultas SQL para facilitar a leitura
enable_lazy_load_no_trans: true # Habilita carregamento lazy fora de transações

flyway:
locations: classpath:db/migration/postgres # Localização dos scripts de migração do Flyway
baseline-on-migrate: true # Força o Flyway a manter o controle de versões no banco
enabled: true # Habilitar o Flyway para gerenciar migrações

security:
config:
key: ${JWT_SECRET_KEY:your-secret-key} # Variável de ambiente para a chave JWT (pode ser definida no ambiente)
expiration: ${JWT_EXPIRATION:12} # Definir o tempo de expiração do JWT (hora)
4 changes: 2 additions & 2 deletions sysagua-app/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,5 @@ WORKDIR $APP_HOME
# Copia o arquivo JAR gerado na etapa de build para o container
COPY --from=BUILD $APP_HOME/target/*.jar $JAR_NAME

# Comando de entrada configurável para rodar a aplicação JavaFX
ENTRYPOINT ["java", "-jar", "app.jar"]
# Comando de entrada configurável para verificar se o build funcionou
ENTRYPOINT ["java", "-version"]