다른 저장소가 새 릴리스를 만들 때 트리거되는 GitHub 워크 플로우를 작성하려고합니다.
: 문서에서 단락이 될 것이다 .on.event_name.types
event_name
release
문제는 : release
다른 저장소 의 이벤트 를 참조 할 수있는 방법이 있습니까?
다른 저장소가 새 릴리스를 만들 때 트리거되는 GitHub 워크 플로우를 작성하려고합니다.
: 문서에서 단락이 될 것이다 .on.event_name.types
event_name
release
문제는 : release
다른 저장소 의 이벤트 를 참조 할 수있는 방법이 있습니까?
답변:
다른 리포지토리의 릴리스 이벤트를 참조 할 수있는 방법이 있습니까?
이 기능이 존재하지 않는지 확인하십시오.
릴리스를 작성하는 저장소에 액세스 할 수있는 경우 웹훅 이벤트를 호출하여 on: repository_dispatch
다른 저장소에서 실행 되는 워크 플로우를 트리거 할 수 있습니다. 리포지토리 디스패치이 경우 작업이 도움이 될 수 있습니다.
릴리스를 작성하는 저장소에 액세스 할 수 없으면 (여기서는 가정합니다) 이것이 내 제안입니다. 먼저 추적하려는 리포지토리의 릴리스 버전 태그를 정기적으로 확인하는 다음 워크 플로를 만듭니다. 현재 저장소에 저장 한 릴리스 버전과 다른 경우 새 버전이 커밋됩니다.
수정 된 파일이 작동하려면 대상 파일을 먼저 준비해야합니다 (예 : release-versions / swagger-ui-latest.txt). 또한 repo
default 대신 범위 가 지정된 토큰 을 사용해야합니다 GITHUB_TOKEN
. 이에 대한 자세한 내용은 GitHub에서 원점으로 푸시 작업 을 참조하십시오.
name: Get latest release version
on:
schedule:
- cron: '0 10 * * *'
jobs:
get-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.REPO_SCOPED_TOKEN }}
- name: Fetch release version
run: |
curl -sL https://api.github.com/repos/swagger-api/swagger-ui/releases/latest | \
jq -r ".tag_name" > release-versions/swagger-ui-latest.txt
- name: Check for modified files
id: git-check
run: echo ::set-output name=modified::$(if git diff-index --quiet HEAD --; then echo "false"; else echo "true"; fi)
- name: Commit latest release version
if: steps.git-check.outputs.modified == 'true'
run: |
git config --global user.name 'Your Name'
git config --global user.email 'your-email@users.noreply.github.com'
git commit -am "New release version"
git push
그런 다음 디렉토리에 대한 변경 사항이있을 때만 실행되는 두 번째 워크 플로를 만들 수 있습니다 release-versions
.
on:
push:
paths:
- 'release-versions/*'
이 워크 플로우에서 저장된 버전을 사용하여 필요한 자산을 가져오고 필요한 처리를 수행 할 수 있습니다.