Skip to content

GitHub actions ci-pipeline #12

GitHub actions ci-pipeline

GitHub actions ci-pipeline #12

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: ${{ 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
- 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: ${{ secrets.DB_PASSWORD }}
# Aguarda que os serviços estejam prontos
- name: Wait for services to be ready
run: |
timeout 300 bash -c '
until echo > /dev/tcp/localhost/8080; do
echo "Waiting for API service..."
sleep 2
done
echo "API service is ready!"'
# Concede permissão de execução ao script Gradle Wrapper
- name: Grant execute permission for gradlew
run: chmod +x ./sysagua-api/gradlew
# 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