2025. 9. 27. 18:17ㆍCI\CD/Github Actions
이번에는 Pull Request가 발생했을때 실행될 workflow를 만들어보자.
먼저 .github/workflows에 yaml파일을 하나 생성해주고
가장 먼저 이름을 지정해주고
pull request 이벤트에 트리거 될 수 있도록 on으로 이벤트를 지정해주자
그리고 jobs 부분은 기존에 push를 할때 썼던 workflow를 명칭만 조금 바꿔서 사용하도록 해주자.
이제 pull request를 발생시키기 위해서 브랜치를 하나 추가로 생성해주도록 하자.
브랜치를 생성했으면 로컬에서 오리진의 브랜치를 인식할 수 있도록 fetch를 해주고
git branch 명령어로 인식이 됨을 확인했으면
checkout을 해주자
checkout된 상태에서 소스에서 yaml파일을 조금 수정해주고
git에 다시 커밋과 푸시를 해준 후에
깃허브로 돌아가서 상단 메뉴에서 Pull Request를 클릭해주고
포크 한 후에 지금은 수정했지만 풀 리퀘를 확인을 못해서 해결 한 방법을 확인하고자 한다.
컴페어 풀 리퀘가 안뜨길래 뉴 풀리퀘스트로 만들었는데 들어갓더니

포크한 리퀘스트가 나오면서 내 화면이 안보인다.
이럴땐 base repository 부분 드롭다운을 눌러서

내 레포지토리를 선택해주면

내 레포지토리로 돌아온다
이러고 나서 컴페어할 브랜치를 선택해주면


이래야 나온다...
아마 포크하는 경우는 베이직하게 포크한 레포지토리로 풀리퀘스트하는 것으로 설정 되어 있는가보다.
이걸로 해결..!
Compare & pull request를 선택해주자.
이때도 base repository를 잘 보고 풀리퀘스트 해주자.
이제 Create 해주자.
그러면
이렇게 workflow에 등록한 job이 실행되게 된다.
잘 실행된걸 확인할 수 있다.
추가로 한번 파일을 또 수정하고 커밋을 해보면
이번엔 커밋하고 push만 했는데도 workflow가 실행된것을 볼 수 있다.
그냥 on : pull_request로 만 이벤트를 작성하면
pull_request의 Activity types중 opened와 synchronize와 reopen을 default로 설정한것과 같은 동작을 하게 된다.
그 중 synchronize라는 타입이 pull request의 head 브랜치에 새 커밋이 푸시 되거나 리베이스 등 이력이 바뀔때를 의미하는 이벤트로 우리가 최초 pull request를 한 후에 그걸 받아주는 쪽에서 pull을 하지 않고 지금 pull request가 open인 상태로 유지가 될때
우리가 커밋과 푸시 작업을 진행한다면 깃허브 측에서는 pull request의 상태를 최신 상태로 Synchronize한다.
지금 우리의 상태가 synchronize에 포함되기 때문에 workflow가 실행된 것이다.
만약에 풀리퀘스트가 open 될때만 즉, 실제 pull request가 생성될때만 동작 시키고자 한다면 Activity type을 명시적으로 작성해줘야 한다.
작성하는 방법은 기존의 이벤트를 아래로 내리고
하위 항목으로 types을 적어준 다음에
배열의 형태로 원하는 이벤트를 작성해주면 된다.
이번엔 이걸 메인 브랜치에 추가해주고 브랜치를 새로 따보자.
이렇게 브랜치에 추가됨을 확인했고
이렇게 새 브랜치를 따주자.
그리고 저 브랜치로 checkout해준 다음에
값을 조금 수정해주고
commiy & push 해주자.
이제 비교를 위해 Pull Request를 최초로 Open해주고
다시 소스로 들어가서
또 값을 수정하고 commit & push해주면
보면 워크플로우가 open될때만 실행되고 그 이후로는 실행되지 않은것을 볼 수 있다.
이런 Activity Type을 모두 가지고 있는 것은 아니다.
이런 Activity Type을 갖고 있는 경우는 조금 더 디테일한 작업이 진행 될 수 있다는 점을 알아두고 넘어가자
'CI\CD > Github Actions' 카테고리의 다른 글
Github Actions - Issues Comment (0) | 2025.09.29 |
---|---|
Github Actions - Issues (0) | 2025.09.29 |
Github Actions - Push (0) | 2025.09.27 |
Github Actions - Github Marketplace 및 사전 준비 (0) | 2025.09.26 |
GitHub Actions - 컴포넌트 (0) | 2025.09.26 |