Skip to content

Merge pull request #99 from Capstone-OpenStep/feature/#89-xp-api #63

Merge pull request #99 from Capstone-OpenStep/feature/#89-xp-api

Merge pull request #99 from Capstone-OpenStep/feature/#89-xp-api #63

Workflow file for this run

name: OpenStep Dev CI/CD
on:
push:
branches: [ "main","develop" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: application.yml
if: contains(github.ref, 'develop')
run: |
mkdir -p src/main/resources
echo "${{ secrets.APPLICATION_YML }}" > src/main/resources/application.yml
- name: Cache Gradle dependencies
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-${{ runner.os }}-
- name: Grant execute permission for Gradlew # gradlew 실행 권한 부여
run: chmod +x gradlew
- name: Build with Gradle # Gradle 빌드
run: ./gradlew build -x test --no-daemon --parallel --build-cache
- name: Set up docker-compose.yml
if: contains(github.ref, 'develop')
run: echo "${{ secrets.DOCKERCOMPOSE_YML }}" > docker-compose.yml
- name: Docker build & push to dev
if: contains(github.ref, 'develop')
run: |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker compose -f docker-compose.yml build
docker compose -f docker-compose.yml push
- name: Clean up application.yml after build
if: always()
run: rm -f src/main/resources/application.yml
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- name: Copy docker-compose.yml to EC2
run: |
echo "${{ secrets.DOCKERCOMPOSE_YML }}" > docker-compose.yml
echo "${{ secrets.PRIVATE_KEY }}" > key.pem
chmod 600 key.pem
scp -i key.pem -o StrictHostKeyChecking=no docker-compose.yml ${{ secrets.USERNAME }}@${{ secrets.HOST_DEV }}:/home/${{ secrets.USERNAME }}/docker-compose.yml
rm -f key.pem docker-compose.yml
## deploy to develop
- name: Deploy to dev
uses: appleboy/[email protected]
id: deploy-dev
if: contains(github.ref, 'develop')
with:
host: ${{ secrets.HOST_DEV }}
username: ${{ secrets.USERNAME }}
port: 22
key: ${{ secrets.PRIVATE_KEY }}
script: |
cd /home/${{ secrets.USERNAME }}
docker-compose -f docker-compose.yml down
docker-compose -f docker-compose.yml pull
docker-compose -f docker-compose.yml up -d --remove-orphans
docker image prune -f