목표:
1차 토이 프로젝트(23/09/11 ~ 23/09/27) CICD 과정에서 사용했던 github action 사용정리
name: snsapp CI/CD
on:
push:
branches:
- [연결 branch 등록]
jobs:
build:
runs-on: ubuntu-latest [우분투 최신화 버전 사용]
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
token: ${{ secrets.ACTION_TOKEN }}
- github access token 발급 후 repo setting action 값에 대입
- name: Set up Java
uses: actions/setup-java@v2
with:
java-version: 17
distribution: 'zulu'
- name: Install Gradle
run: |
wget https://services.gradle.org/distributions/gradle-7.3-bin.zip
unzip -d /opt gradle-7.3-bin.zip
export PATH=$PATH:/opt/gradle-7.3/bin
gradle -v
- name: Build Gradle
run: |
cd /home/runner/work/sns-notification-system/sns-notification-system/snsapp
chmod +x ./gradlew
./gradlew build
- name: Move App.jar to Current Directory
run: |
mv snsapp/app-server/build/libs/app.jar ./
scp 과정
- name: Connect to Server & Transfer Application
uses: appleboy/scp-action@master # scp 전송 확인
with:
proxy_host: ${{ secrets.PROXY_HOST }}
proxy_username: root
proxy_key: ${{ secrets.SSH_PRIVATE_KEY }}
proxy_port: 22
host: ${{ secrets.DEV_HOST }}
username: root
key: ${{ secrets.SSH_DEV_PRIVATE_KEY}}
port: 22
source: app.jar
target: /var/app
- name: Run Application
uses: appleboy/ssh-action@master
with:
proxy_host: ${{ secrets.PROXY_HOST }}
proxy_username: root
proxy_key: ${{ secrets.SSH_PRIVATE_KEY }}
proxy_port: 22
host: ${{ secrets.DEV_HOST }}
username: root
key: ${{ secrets.SSH_DEV_PRIVATE_KEY}}
port: 22
script: |
cd /var/app
./app_run.sh
> 참고 영상 : https://www.youtube.com/watch?v=R8_veQiYBjI