Skip to content

Merge pull request #35 from CristianoMends/api/feature/deliveryPerson #6

Merge pull request #35 from CristianoMends/api/feature/deliveryPerson

Merge pull request #35 from CristianoMends/api/feature/deliveryPerson #6

Workflow file for this run

name: Continuous Integration
on:
push:
branches:
- staging
- develop
pull_request:
branches:
- main
jobs:
CI-Pipeline:
runs-on: ubuntu-latest
env:
SPRING_PROFILES_ACTIVE: test
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
steps:
# Checkout do código-fonte
- name: Check out code
uses: actions/checkout@v3
# Configuração de cache para Gradle
- name: Cache Gradle Dependencies
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
# Instalação do Java 21
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '21'
# Instalação do Docker Compose
- name: Install Docker Compose
run: |
sudo apt-get update
sudo apt-get install -y docker-compose
# Início dos serviços com Docker Compose
- name: Start Docker Compose
run: docker-compose up --build -d
env:
DB_PASSWORD: testpassword
# Aguarda que os serviços estejam prontos
- name: Wait for services to be ready
run: |
timeout 120 bash -c '
until echo > /dev/tcp/localhost/8080; do
echo "Waiting for API service..."
sleep 2
done
echo "API service is ready!"'
# Execução de testes da API usando Gradle
- name: Run API Tests
working-directory: ./sysagua-api
run: ./gradlew test
# Logs de depuração (opcional)
- name: Check Docker logs
run: docker-compose logs --tail=100
# Derrubar os containers ao final do pipeline
- name: Stop Docker Compose
if: always()
run: docker-compose down