【GitHub Actions】 한 리포지토리에 push를 트리거로 다른 리포지토리의 워크 플로를 시작하는 방법
환경
하고 싶은 일
아래 그림과 같이 리포지토리 A에 push된 것을 계기로 리포지토리 B의 GitHub Actions 워크플로우를 실행하고 싶다는 것입니다.
만든 것
최종적으로 완성된 구성은 다음과 같습니다.
필요한 작업은 다음과 같습니다.
(1)-1: GitHub API를 이용하기 위한 personal access token 취득
(1)-2: Rest API에서 repository dispatch event 작성
(2) : repository_dispatch를 트리거 한 워크 플로우 시작
이하, 작업 내용의 상세입니다.
(1)-1 personal access token 취득
GitHub Actions 워크플로에서 GitHub API를 사용하려면 personal access token을 검색해야 합니다.
다음 페이지를 참고하여 취득합니다.
GitHub - Creating a personal access token
※ 필요한 scope는
repo
입니다.작성한 personal access token은 리포지토리 A의 secrets에 저장합니다.
GitHub - 암호화된 비밀 만들기 및 저장
저장된 toke는 (1)-2로 Rest API를 실행할 때 secrets.MY_GITHUB_ACCESS_TOKEN에서 사용합니다.
(1)-2 repository dispatch event의 작성
리포지토리 A에 push된 것을 계기로 Rest API에서 repository dispatch event를 작성합니다.
API의 사양은 다음과 같습니다.
GitHub - Create a repository dispatch event
리포지토리 A의 GitHub Actions의 yml 파일 내용
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Create GitHub dispatch event
run: |
curl --request POST 'https://api.github.com/repos/username/repository-b-name/dispatches' \
--header 'Authorization: Bearer ${{secrets.MY_GITHUB_ACCESS_TOKEN}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"event_type": "repository-a-updated"
}'
(2) repository_dispatch를 트리거로 한 워크 플로우의 기동
리포지토리 A에서 리포지토리 B로 리포지토리 디스패치 이벤트가 전달되므로 리포지토리 B에서 받을 수 있습니다.
repository_dispatch
라는 이벤트를 받으면 GitHub Actions 워크플로를 시작할 수 있습니다.GitHub - Events that trigger workflows
리포지토리 B GitHub Actions의 yml 파일 내용
on:
repository_dispatch:
types:
- repository-a-updated # repository_dispatch送出時のevent_typeの名前と揃える
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
# 適宜、テストやビルドを実行
참고
GitHub Support Community - Triggering by other repository
GitHub Support Community - Trigger a workflow from another workflow
Github Actions를 사용할 수 있게 되었기 때문에 사용해 본다
Github Actions 사용법 노트
Github Actions 4개월 사용해 보았던 일 정리
Reference
이 문제에 관하여(【GitHub Actions】 한 리포지토리에 push를 트리거로 다른 리포지토리의 워크 플로를 시작하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/horitaka/items/14ac325a26635b391b79텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)