feat: 메모 동적 쿼리 구현 #87
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow uses actions that are not certified by GitHub. | |
# They are provided by a third-party and are governed by | |
# separate terms of service, privacy policy, and support | |
# documentation. | |
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time | |
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle | |
name: PONNECT CI with Gradle | |
on: #이벤트 감지 | |
pull_request: | |
types: [closed] | |
push: | |
branches : ["develop"] | |
workflow_dispatch: | |
env: | |
LIGHTSAIL_SSH_KEY: ${{ secrets.LIGHTSAIL_SSH_KEY }} | |
LIGHTSAIL_HOST: ${{ secrets.LIGHTSAIL_HOST }} | |
LIGHTSAIL_USERNAME: ubuntu | |
AWS_REGION: ap-northeast-2 | |
#Seoul 주소 | |
permissions: write-all | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: # STEP BY STEP 실행 | |
- uses: actions/checkout@v3 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
#액션 내, 가상 환경에서의 gradle 권한 부여 | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
#빌드 수행 | |
- name: Build with Gradle | |
uses: gradle/gradle-build-action@0d13054264b0bb894ded474f08ebb30921341cee | |
with: | |
arguments: build | |
#jar 실행파일생성 | |
- name: Build the *.jar executable as Gradle | |
uses: actions/upload-artifact@v2 | |
with: | |
name: jarfile | |
path: build/libs/ponnect-0.0.1-SNAPSHOT.jar | |
#파일 여부확인 | |
- name: checkout file list | |
run: ls | |
#AWS에 접속한다. | |
- name: Access AWS | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-region: ${{ env.AWS_REGION }} | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
#AWS 인증을 바탕으로 우선 접속 가능한 사용자인지 확인 | |
- name: Check the connection status of AWS Lightsail | |
run: aws configure list | |
#lightsail 인스턴스 내, Home 디렉토리에 ssh 접근 | |
- name: Move executable files from GitHub's virtual environment | |
uses: appleboy/scp-action@master | |
with: | |
host: ${{ secrets.LIGHTSAIL_HOST }} | |
username: ${{ env.LIGHTSAIL_USERNAME }} | |
key: ${{ secrets.LIGHTSAIL_SSH_KEY }} | |
source: build/libs/* | |
strip_components: 1 | |
target: '/home/ubuntu' | |
#기존 배포 중지 | |
- name: Grant execute permission for stop.sh | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.LIGHTSAIL_HOST }} | |
username: ${{env.LIGHTSAIL_USERNAME}} | |
key: ${{ secrets.LIGHTSAIL_SSH_KEY }} | |
script: chmod +x stop.sh | |
- name: Stop the running server | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.LIGHTSAIL_HOST }} | |
username: ${{ env.LIGHTSAIL_USERNAME }} | |
key: ${{ secrets.LIGHTSAIL_SSH_KEY }} | |
script: ./stop.sh | |
#배포 쉘스크립트 동적 생성 | |
- name: make start.sh | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.LIGHTSAIL_HOST }} | |
username: ${{ env.LIGHTSAIL_USERNAME }} | |
key: ${{ secrets.LIGHTSAIL_SSH_KEY }} | |
script: echo -e "#!/bin/bash\n | |
export JWT=${{ secrets.JWT}}\n | |
export JWT_EXPIRATION=${{ secrets.JWT_EXPIRATION }} \n | |
export JWT_HEADER=${{ secrets.JWT_HEADER }}\n | |
export BUCKET=${{ secrets.BUCKET }}\n | |
export S3_ACCESS_KEY=${{ secrets.S3_ACCESS_KEY }}\n | |
export S3_SECRETKEY=${{ secrets.S3_SECRETKEY }}\n | |
export SMTP_USERNAME=${{ secrets.SMTP_USERNAME }}\n | |
export SMTP_PW=${{ secrets.SMTP_PW }}\n | |
export DATA_SOURCE_URL=${{ secrets.DATA_SOURCE_URL }}\n | |
export DATA_SOURCE_USERNAME=${{ secrets.DATA_SOURCE_USERNAME }}\n | |
export DATA_SOURCE_PW=${{ secrets.DATA_SOURCE_PW }}\n | |
export DISCORD_WEBHOOK_URL=${{ secrets.DISCORD_WEBHOOK_URL }}\n | |
nohup java -jar ./libs/ponnect-0.0.1-SNAPSHOT.jar > /home/ubuntu/ponnect.log 2>&1 &" > ponnect_start.sh | |
#생성된 쉘 스크립트에 실행 권한 부여 | |
- name: Grant execute permission for start.sh | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.LIGHTSAIL_HOST }} | |
username: ${{env.LIGHTSAIL_USERNAME}} | |
key: ${{ secrets.LIGHTSAIL_SSH_KEY }} | |
script: chmod +x ponnect_start.sh | |
#서버 시작. | |
- name: Start server | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.LIGHTSAIL_HOST }} | |
username: ${{env.LIGHTSAIL_USERNAME}} | |
key: ${{ secrets.LIGHTSAIL_SSH_KEY }} | |
script: ./ponnect_start.sh | |