Skip to content

Feat/dotenv init

Feat/dotenv init #93

Workflow file for this run

name: Continuous Integration
on:
pull_request:
branches:
- dev
- weekly/*
- Review
jobs:
CI:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '21'
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
with:
gradle-version: 8.10
# 캐시 생성 비용이 더 큼
# - name: Cache Gradle packages
# uses: actions/cache@v3
# with:
# path: |
# ~/.gradle/caches
# ~/.gradle/wrapper
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
# restore-keys: |
# ${{ runner.os }}-gradle-
- name: Start Docker Compose and wait for database
env:
DB_USERNAME: ${{ secrets.DB_USERNAME }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
DB_ROOT_PASSWORD: ${{ secrets.DB_ROOT_PASSWORD }}
DB_HOST_PORT: 3306
DB_CONTAINER_PORT: 3306
DB_NAME: ${{ secrets.DB_NAME }}
DB_CONTAINER_NAME: ${{ env.DB_CONTAINER_NAME }}
run: |
chmod +x ./gradlew
cd ./docker
docker compose up -d
# Wait for database to be ready
echo "Waiting for database to be ready..."
timeout 60s bash -c 'until docker exec -i $(docker ps -q --filter "name=${{ env.DB_CONTAINER_NAME }}") mysqladmin ping -h "127.0.0.1" --silent; do sleep 1; done'
- name: Install dependencies
run: ./gradlew build -x test
- name: Run Tests
run: ./gradlew --info test
- name: Publish Unit Test Results
uses: EnricoMi/publish-unit-test-result-action@v1
if: ${{ always() }}
with:
files: build/test-results/**/*.xml
- name: Publish Test Report
uses: mikepenz/action-junit-report@v3
if: success() || failure() # always run even if the previous step fails
with:
report_paths: '**/build/test-results/test/TEST-*.xml'
- name: Package the application
run: ./gradlew assemble
- name: Cleanup
if: always()
run: |
cd ./docker
docker compose down