Github Actions 도입기

1. 빠르게 API 문서 갱신하기

모우다팀은 API문서 툴로 swagger를 선택했습니다. 프론트 개발팀의 편의를 위해 빠르게 API명세를 전달하고 싶은데, 매번 배포하기 번거로웠습니다. 😅

배포 스크립트를 작성했지만, 작업 완료한 브랜치를 머지할 때마다 서버에 접속하여 배포 스크립트를 실행하는 것도 하나의 태스크로 다가옵니다.

백 개발팀이 개발에 더 집중할 수 있도록 배포 자동화를 시도했습니다.

workflow 파일을 작성해봅시다.

github의 Repository secrets에 EC2 private key를 저장하고, 직접 서버에 접속해 배포 스크립트를 실행하는 방법을 시도했습니다.

name: mouda-dev

jobs:
  build:
    runs-on: ubuntu-24.04

    steps:
      # 레포지토리 체크아웃, JDK17 설치, gradlew 권한 부여 ...

      - name: **배포 스크립트 실행**
        uses: appleboy/[email protected] # ec2 접근 (with 22번 포트)
        with:
          host: ${{ secrets.EC2_HOST }}
          username: ${{ secrets.EC2_USERNAME }}
          key: ${{ secrets.EC2_SSH_KEY }}
          port: 22
          script : |
            sh /home/ubuntu/2024-mouda/deploy.sh 

dial tcp ***:22: i/o timeout

자꾸 타임아웃이 뜨면서 [ 배포 스크립트 실행 ] 작업이 실패했네요

2. github actions 22번 포트 접근 문제

문제는

  1. ec2 보안그룹
  2. workflow runs-on: 설정

두 가지였습니다.