【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


  • htps : // / cs. 기주 b. 코 m / 엔 / f Ree-p 로- m @ st / A c Chion s / Reffensense / E-on ts - t t t Righ r-rkf ぉws # rkf ぉ w_ 룬
  • 좋은 웹페이지 즐겨찾기