Skip to content

Update test.yaml (#24) #26

Update test.yaml (#24)

Update test.yaml (#24) #26

Workflow file for this run

name: Java CI/CD with Gradle
on:
push:
branches:
- main
env:
DOCKER_REGISTRY_URL: poten16.kr.ncr.ntruss.com
DOCKER_IMAGE_NAME: poten16-server
DOCKER_CONTAINER_NAME: poten16-server
POTEN16_SERVER_PORT: 8080
MYSQL_URL: jdbc:mysql://${{ secrets.MYSQL_HOST }}:${{ secrets.MYSQL_PORT }}/poten16?useSSL=false&serverTimezone=Asia/Seoul&useUnicode=yes&characterEncoding=UTF-8
GPT_REQUEST_COUNT: 50
W3W_REQUEST_COUNT: 50
jobs:
build-and-push-docker-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Cache Gradle
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: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: '21'
distribution: 'temurin'
- name: Grant execute permisson for gradlew
run: chmod +x gradlew
- name: Build Docker Image with Gradle
run: ./gradlew clean bootBuildImage
- name: Log in to NCP Docker Registry
run: echo "${{ secrets.DOCKER_REGISTRY_PASSWORD }}" | docker login ${{ env.DOCKER_REGISTRY_URL }} -u ${{ secrets.DOCKER_REGISTRY_USERNAME }} --password-stdin
- name: Push Docker Image to NCP Registry
run: docker push ${{ env.DOCKER_REGISTRY_URL }}/${{ env.DOCKER_IMAGE_NAME }}
deploy-to-ncp:
needs: build-and-push-docker-image
runs-on: ubuntu-latest
steps:
- name: Deploy via SSH
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SSH_HOST }}
port: ${{ secrets.SSH_PORT }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
docker stop ${{ env.DOCKER_CONTAINER_NAME }}
docker rm ${{ env.DOCKER_CONTAINER_NAME }}
docker pull ${{ env.DOCKER_REGISTRY_URL }}/${{ env.DOCKER_IMAGE_NAME }}
docker run -d --name ${{ env.DOCKER_CONTAINER_NAME }} -p ${{ env.POTEN16_SERVER_PORT }}:8080 -e W3W_API_KEY=${{ secrets.W3W_API_KEY }} -e GPT_TOKEN=${{ secrets.GPT_TOKEN }} -e MYSQL_URL="${{ env.MYSQL_URL }}" -e MYSQL_USERNAME=${{ secrets.MYSQL_USERNAME }} -e MYSQL_PASSWORD=${{ secrets.MYSQL_PASSWORD }} -e GPT_REQUEST_COUNT=${{ env.GPT_REQUEST_COUNT }} -e W3W_REQUEST_COUNT=${{ env.W3W_REQUEST_COUNT }} ${{ env.DOCKER_REGISTRY_URL }}/${{ env.DOCKER_IMAGE_NAME }} sleep infinity