【GitHub Actions】 workflow_run에서 호출자의 workflow 결과 검색
2577 단어 GitHubActionsGitHub
개요
GitHub Actions의 트리거에는 workflow_run
라는 것이 있습니다.
workflow_run은 하나의 workflow가 완료되거나 호출되면 호출되는 이벤트 트리거입니다.
문제점
workflow_run은 on
매개 변수에서 호출자의 결과로 시작할지 여부를 지정할 수 없습니다.
따라서 호출자의 결과가 failure 또는 cancelled에서 시작됩니다.
해결 방법 (호출자의 workflow 결과를 얻는 방법)
workflow_run의 호출자인 workflow 결과를 작업 내에서 검색합니다.
구체적인 방법은 ${{ github.event.workflow_run.conclusion }}을 사용하는 것입니다. conclusion이 호출한 결과입니다.
다음 예제에서는 호출하는 workflow 이름을 Build라고 합니다.
name: Workflow Run Trigger
on:
workflow_run:
workflows:
- Build
types:
- completed
jobs:
main:
name: Main job
runs-on: ubuntu-latest
# 呼び元のworkflowの結果がsuccessであればmain jobを実行
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps: ...
Use Case
건너뛸 수 있는 작업에 종속된 작업이 있으며 해당 작업은 항상 실행하려는 경우에 유효합니다.
예를 들어 다음과 같이 ECS 배포에서 이미지 빌드 및 서비스 업데이트 CD를 분할하려는 경우가 있습니다.
ECS의 한 작업으로 여러 이미지를 빌드 & 푸시 케이스에서도 needs를 많이 사용하지 않고 간단하게 workflow를 작성할 수 있습니다. 하나라도 build에 실패하면 배포는 실행되지 않고, 어느 이미지 빌드가 스킵해도 배포 스테이지를 실행할 수 있습니다.
끝에
needs로 복잡해진 workflow나 스킵 작업에도 의존하고 있는 작업이 있는 경우는 workflow_run로 분할해, 각각으로 단순하게 되도록 궁리해 보는 것은 어떻습니까?
Reference
workflow_run은
on
매개 변수에서 호출자의 결과로 시작할지 여부를 지정할 수 없습니다.따라서 호출자의 결과가 failure 또는 cancelled에서 시작됩니다.
해결 방법 (호출자의 workflow 결과를 얻는 방법)
workflow_run의 호출자인 workflow 결과를 작업 내에서 검색합니다.
구체적인 방법은 ${{ github.event.workflow_run.conclusion }}을 사용하는 것입니다. conclusion이 호출한 결과입니다.
다음 예제에서는 호출하는 workflow 이름을 Build라고 합니다.
name: Workflow Run Trigger
on:
workflow_run:
workflows:
- Build
types:
- completed
jobs:
main:
name: Main job
runs-on: ubuntu-latest
# 呼び元のworkflowの結果がsuccessであればmain jobを実行
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps: ...
Use Case
건너뛸 수 있는 작업에 종속된 작업이 있으며 해당 작업은 항상 실행하려는 경우에 유효합니다.
예를 들어 다음과 같이 ECS 배포에서 이미지 빌드 및 서비스 업데이트 CD를 분할하려는 경우가 있습니다.
ECS의 한 작업으로 여러 이미지를 빌드 & 푸시 케이스에서도 needs를 많이 사용하지 않고 간단하게 workflow를 작성할 수 있습니다. 하나라도 build에 실패하면 배포는 실행되지 않고, 어느 이미지 빌드가 스킵해도 배포 스테이지를 실행할 수 있습니다.
끝에
needs로 복잡해진 workflow나 스킵 작업에도 의존하고 있는 작업이 있는 경우는 workflow_run로 분할해, 각각으로 단순하게 되도록 궁리해 보는 것은 어떻습니까?
Reference
name: Workflow Run Trigger
on:
workflow_run:
workflows:
- Build
types:
- completed
jobs:
main:
name: Main job
runs-on: ubuntu-latest
# 呼び元のworkflowの結果がsuccessであればmain jobを実行
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps: ...
건너뛸 수 있는 작업에 종속된 작업이 있으며 해당 작업은 항상 실행하려는 경우에 유효합니다.
예를 들어 다음과 같이 ECS 배포에서 이미지 빌드 및 서비스 업데이트 CD를 분할하려는 경우가 있습니다.
ECS의 한 작업으로 여러 이미지를 빌드 & 푸시 케이스에서도 needs를 많이 사용하지 않고 간단하게 workflow를 작성할 수 있습니다. 하나라도 build에 실패하면 배포는 실행되지 않고, 어느 이미지 빌드가 스킵해도 배포 스테이지를 실행할 수 있습니다.
끝에
needs로 복잡해진 workflow나 스킵 작업에도 의존하고 있는 작업이 있는 경우는 workflow_run로 분할해, 각각으로 단순하게 되도록 궁리해 보는 것은 어떻습니까?
Reference
Reference
이 문제에 관하여(【GitHub Actions】 workflow_run에서 호출자의 workflow 결과 검색), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/homines22/items/54a696a6953f2be6e7ff텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)