모우다팀은 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
자꾸 타임아웃이 뜨면서 [ 배포 스크립트 실행 ] 작업이 실패했네요
문제는
runs-on: 설정두 가지였습니다.