[Net/CICD] - gitHub Action 연결하기

liho·2023년 9월 29일
0

Network

목록 보기
17/24
post-thumbnail

목표:
1차 토이 프로젝트(23/09/11 ~ 23/09/27) CICD 과정에서 사용했던 github action 사용정리

Cloud Architecture Diagram

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 값에 대입


  • JDK 17 설치
      - name: Set up Java
        uses: actions/setup-java@v2
        with:
          java-version: 17
          distribution: 'zulu'

  • gradle 설치 후 build
      - 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

  • build된 jar 파일 /위 이동 (scp를 위해)
      - 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
  • ssh 접속한 server에 app_run.sh(java -jar 실행) 스크립트 실행
      - 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

0개의 댓글