인프런 커뮤니티 질문&답변

yso829612님의 프로필 이미지

작성한 질문수

비전공자도 이해할 수 있는 CI/CD 입문·실전

[실습] 개인 프로젝트에서 많이 쓰는 CI/CD 구축 방법 - 2

time out 질문

해결된 질문

24.08.09 17:52 작성

·

123

0

현재 github actions 실행할때마다 계속 Run Command timeout 뜨는 상태입니다. swap 생성을 해주었는데도 계속 실패하네요..

아래는 yml 코드입니다.

# Workflow의 이름
# Workflow : 하나의 yml 파일을 하나의 Workflow라고 부른다.
name: Deploy To EC2

# Event : 실행되는 시점을 설정
# main이라는 브랜치에 push 될 때 아래 Workflow를 실행
on:
  push:
    branches:
      - step3

# 하나의 Workflow는 1개 이상의 Job으로 구성된다.
# 여러 Job은 기본적으로 병렬적으로 수행된다.
jobs:
  # Job을 식별하기 위한 id
  deploy:
    # Github Actions를 실행시킬 서버 종류 선택
    runs-on: ubuntu-latest

    # Step : 특정 작업을 수행하는 가장 작은 단위
    # Job은 여러 Step들로 구성되어 있다.
    steps:
      - name: SSH(원격 접속)로 EC2에 접속하기  # Step에 이름 붙이는 기능
        uses: appleboy/ssh-action@v1.0.3
        with:
          host: ${{ secrets.EC2_HOST }} # IP 주소
          username: ${{ secrets.EC2_USERNAME }}
          key: ${{ secrets.EC2_PRIVATE_KEY }} # 키페어 값
          script_stop:
          script: |
            cd /home/ubuntu/spring-gift-point
            git pull origin step3
            ./gradlew bootJar -x test
            sudo fuser -k -n tcp 8080 || true
            nohup java -jar build/libs/*SNAPSHOT.jar > ./output.log >&1 &
image.png

 

답변 6

0

yso829612님의 프로필 이미지
yso829612
질문자

2024. 08. 09. 20:37

강사님 말씀대로 한 줄씩 추가해가면서 원인을 찾았습니다!

마지막 줄인 nohup부분을 잘못적어서 실패한거였습니다.

도움 주셔서 감사합니다!

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

2024. 08. 10. 09:32

해결하셨다니 다행이네요👍

다음에 또 공부하시다가 막히시는 점 있으면 질문 남겨주세요~~

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

2024. 08. 09. 18:48

아하 그렇군요ㅠㅠ!!

조금 더 쉽게 디버깅을 하기 위해서

script에 있는 명령어를 한 줄 씩 테스트해보는 것도 추천드립니다!

cd /home/ubuntu/spring-gift-point

이 명령어만 있을 때는 잘 작동하는 지 체크해보시고 잘 작동한다면

cd /home/ubuntu/spring-gift-point
git pull origin step3

이렇게 2줄을 테스트해보세요.

이런 식으로 1줄씩 늘려가면서 어떤 명령줄에서 문제가 있는 지 먼저 파악해보시면

쉽게 원인을 찾으실 수 있을거에요~!!

0

yso829612님의 프로필 이미지
yso829612
질문자

2024. 08. 09. 18:45

clean build로 수정해도 똑같네요..
계속 원인을 한 번 찾아보겠습니다.

 

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

2024. 08. 09. 18:24

아! 이 부분 때문에 Github Actions에서 timeout이 발생했던 것 같네요.

./gradlew bootJar -x test

Github Actions 코드에서 위 부분을 아래의 코드로 수정해보시기 바랍니다.

./gradlew clean build -x test

0

yso829612님의 프로필 이미지
yso829612
질문자

2024. 08. 09. 18:19

script_stop: true를 입력해도 여전히 타임아웃이 발생하고 있습니다.

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

2024. 08. 09. 18:06

안녕하세요 yso829612님!

 

Github Actions 코드에서 script_stop: 부분에 true 값이 빠져있는 것 같습니다!

script_stop: true 값을 입력해주신 뒤에 실행 한 번 시켜보시겠어요~??