Skip to content

Merge pull request #180 from slid-todo/feature/complete #114

Merge pull request #180 from slid-todo/feature/complete

Merge pull request #180 from slid-todo/feature/complete #114

Workflow file for this run

name: CD
on:
push:
branches:
- develop
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582
- name: Add SSH host key
run: |
mkdir -p ~/.ssh
ssh-keyscan -H ${{ secrets.HOST }} >> ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
- name: Set up SSH private key
run: |
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/private_key.pem
chmod 600 ~/.ssh/private_key.pem
- name: Build with Gradle
run: ./gradlew build -x test
- name: Upload JAR to Remote Server
run: |
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/private_key.pem
chmod 600 ~/.ssh/private_key.pem
scp -i ~/.ssh/private_key.pem build/libs/todo-0.0.1-SNAPSHOT.jar ${{ secrets.USER }}@${{ secrets.HOST }}:${{ secrets.APP_DIR }}
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Deploy to Remote Server
run: |
ssh -i ~/.ssh/private_key.pem ${{ secrets.USER }}@${{ secrets.HOST }} '
export APP_DIR="${{ secrets.APP_DIR }}";
export DB="${{ secrets.DB }}";
export DB_PASSWORD="${{ secrets.DB_PASSWORD }}";
export DB_USERNAME="${{ secrets.DB_USERNAME }}";
export HOST="${{ secrets.HOST }}";
export JWT_SECRET_KEY="${{ secrets.JWT_SECRET_KEY }}";
export S3_ACCESS_KEY="${{ secrets.S3_ACCESS_KEY }}";
export S3_SECRET_KEY="${{ secrets.S3_SECRET_KEY }}";
export BUCKET_NAME="${{ secrets.BUCKET_NAME }}";
bash -s
' < ./deploy.sh
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
APP_DIR: ${{ secrets.APP_DIR }}
DB: ${{ secrets.DB }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
DB_USERNAME: ${{ secrets.DB_USERNAME }}
HOST: ${{ secrets.HOST }}
JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }}
S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }}
S3_SECRET_KEY: ${{ secrets.S3_SECRET_KEY }}
BUCKET_NAME: ${{ secrets.BUCKET_NAME }}