inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! GitHub Actions으로 CI/CD 시작하기

시나리오1 워크플로우 구성하기 2

PR merge 시 test job 미실행 관련 문의

해결된 질문

475

올챙이

작성한 질문수 2

0

안녕하세요 이상원님 수강생입니다.

 

다른 분들은 이해하셨겠지만, Job 미실행 관련 의문이 생겨 문의드립니다.

'시나리오1 워크플로우 구성하기 1,2'의 흐름과 코드를 보면 test,image-build,deploy job이 있습니다.

이해한 내용으로는 test job은 말그대로 테스트를 위한 job(코드에 문제가 없는지 판단하는 job), image-build는 그 코드를 말아서 ECR로 올리는 과정 deploy는 실제 환경에 올리는 배포 과정으로 이해했습니다.

 

이때, test job과 image build job을 같은 job에 두고 같이 실행하면 안되는 지에 대해서 의문이 생겨 문의드립니다.

 

감사합니다.

 

 

aws kubernetes ci/cd github-actions eks

답변 1

0

이상원

안녕하세요, 올챙이님 좋은 질문 감사합니다.

해당 강의에 제가 자세히 설명드리지 못한 것 같습니다

 

이 강의에서는 CI 는 테스트 단계, CD는 배포 단계로 설정했습니다.

 

PR이 open, synchronize 때는 CI 단계가 실행되도록 하고

PR이 merge되면 CD 배포 단계가 실행되도록 했습니다.

 

PR 이벤트에 의해 CI or CD 둘 다 하나의 깃헙액션 워크플로우에서 실행이 되는데요 .

Job level에서의 제어를 통해 CI 와 CD 단계를 구분 지었습니다.

 

아래처럼 test job level에 있는 if condition에 의해, PR open되거나 synchronize(동기화)될 때만
실행되도록 제어하면 PR이 merge 되는 시점에는 동작하지 않고 Skip하게 됩니다.

 

image-build job은 job level에서 if condition을 통해 PR이 merge되는 시점에만 동작하게 됩니다.

on:
  pull_request:
    types: [opened, synchronize, closed]


jobs:
  test:
    if: github.event.action == 'opened' || github.event.action == 'synchronize'

  image-build:
    if: github.event.pull_request.merged == true

 

이처럼 Job level에서 if condition을 사용하면, 워크플로우가 실행될 때 잡의 실행 여부 제어가 가능합니다.

 

그래서, PR이 merge되는 시점에 test job이 실행되지 않는 이유는
job level에서의 if condition 설정 때문입니다.

 

만약, PR이 open, synchronize, merge 되는 경우에도 test job을 실행하고 싶으시다면

아래처럼 구성하시면 됩니다.

 

on:
  pull_request:
    types: [opened, synchronize, closed]


jobs:
  test:
    if: |
      github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.pull_request.merged == true

 

 

자료가 깨진 것 같습니다.

0

58

2

강의자료 다운로드

0

75

2

로드밸런서 연결 실패

0

57

1

섹션5 시나리오2 워크플로우 구성하기

0

70

1

섹션4-7. high 이슈 추가 시 slack의 high-test 채널로 상세 알림 미전송

0

77

2

github-actions repo의 create-cluster.yaml과 init.sh 사용

0

91

2

슬랙 연동 안됨

0

315

3

visual studio code 터미널에서 github-actions 경로 설정 어떻게 하는 건가요?

0

118

2

강의자료 다운로드 문제

0

115

3

깃헙 레포 생성 자동화 구성하기 2 관련 질문드립니다.

0

166

1

강의 자료 파일이 깨진거 같습니다

0

129

2

runs-on 질문

0

114

2

cloud9 이 종료되어서 진행하기가 힘듧니다.

0

413

2

시나리오 2까지 학습 후 AWS에 관해 질문이 있습니다!

0

143

2

트렁크 베이스로 개발할 경우

0

172

2

region 도쿄로 안하시는 분들

0

184

2

Tag를 이용한 QA 환경 배포와 워크플로우 구성 질문

0

275

2

애플리케이션 실행시 환경 변수에 대해서

0

202

2

처음 강의에서 push.yaml을 workflows 폴더에서 part1으로 옮겼을때

0

199

2

이벤트 트리거 pull_request의 types

0

298

2

강의자료 다운

1

181

2

cloud9 서비스 종료

0

791

2

시나리오2에서 여러 릴리즈 브랜치를 한 번에 운영환경에 배포

0

179

1

처음 push.yaml 에서 actions로 넘어갈때

0

325

2