본인의 환경에 맞게 편집
name: Java CI with Gradle
on:
push:
branches: [ "dev" ] #해당 깃 브런치에 Push가 발생할 경우 깃액션 실행
pull_request:
branches: [ "dev" ] #해당 깃 브런치에 Pull Request가 발생할 경우 깃액션 실행
jobs:
build:
runs-on: ubuntu-latest
env:
working-directory: ./api #프로젝트 루트 디렉토리
steps: #깃액션 실행시 일련의 작업단위
- name: Checkout repository #깃액션 실행단위의 이름
uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: "temurin"
#Gradlew 권한 수정
- name: Run chmod to make gradlew executable #
run: chmod +x ./api/gradlew
#JAR 파일로 빌드
- name: Build with Gradle
run : |
cd api
./gradlew clean bootJar --exclude-task test
#JAR 파일 이동시킬 디렉토리 생성
- name: Make Directory for deliver
run : |
cd api
mkdir deploy
#생성시킨 디렉토리로 JAR 파일 이동
- name : Copy jar
run : |
cd api
cp ./build/libs/*.jar ./deploy/
#라즈베리파이에 JAR 전송
- name: Transfer to Raspberry Pi
uses: appleboy/scp-action@master #파일 전송은 scp-action
with:
host: ${{ secrets.RASPBERRY_PI_HOST }}
username: ${{ secrets.RASPBERRY_PI_USERNAME }}
key: ${{ secrets.RASPBERRY_PI_PRIVATE_KEY }}
port: ${{ secrets.RASPBERRY_PI_PORT }}
timeout: 40s
source: "./api/deploy/api-server.jar"
target: "/home/flanceskwon"
strip_component: 1
#쉘스크립트 실행
- name: Exec script to Raspberry Pi
uses: appleboy/ssh-action@master #쉘스크립트 명령은 ssh-action
with:
host: ${{ secrets.RASPBERRY_PI_HOST }}
username: ${{ secrets.RASPBERRY_PI_USERNAME }}
key: ${{ secrets.RASPBERRY_PI_PRIVATE_KEY }}
port: ${{ secrets.RASPBERRY_PI_PORT }}
timeout: 40s
script: |
whoami
cd /home/flanceskwon/_deploy
sh deploy.sh
내용 저장 후 커밋&푸시 작업 후 깃액션 메뉴에서 해당 실행로그를 확인가능
개발진행시 위 파일과같이 푸시, 피알 작업이 일어나면 해당 깃액션 실행됨