workflow_dispatch를 이용한 github action 수동 트리거
2020-10-18 16:13:59 Author: www.hahwul.com(查看原文) 阅读量:150 收藏

이번 주말에 집 서버에 있던 자동화 로직 중 일부를 github action으로 이동하는 작업을 진행했습니다. 어차피 git pro를 사용하고 있어서, 월 3000분의 private repo에서 사용할 수 있는 github action의 시간이 있기도하고, 아무래도 클라우드 환경이다보니, 피씨꺼짐 등으로 인해 cron이 동작하지 않을 가능성을 줄이기 위해서 이동을 결심했죠.

(점점 탈 Jenkins를 하는 것 같은 느낌이네요..😁)

Github action event

Github action의 event는 각 Job을 수행 시키기 위한 구동 조건을 의미합니다. 대표적으로 push 시, pull 시, cron을 통해 주기적 등이 있죠.

이러한 github action을 만들고 테스트를 하기 위해선 push으로 event를 지정하면 되긴하지만, 때로는 수동으로 테스트가 필요한 경우가 있습니다. (개발 목적이던, 수동 github actiond 만들 목적이던)

# Triggers the workflow on push or pull request events
on: [push, pull_request]

자 그럼 manual 테스트는 어떻게 할까요?

What is workflow_dispatch

조금 찾아보다보니 wofkflow_dispatch라는게 있고, 이는 POST Request를 이용해 Event를 발생시킬 수 있는 event occurs 입니다. 이를 이용하면 git action 탭 내 manual 버튼을 만들 수 있고, 클릭 시 지정한 push, pull_request와 같이 특정 상황에서 트리거되던 workflow를 임의로 동작시킬 수 있습니다.

on:
  workflow_dispatch:
    inputs:
      logLevel:
        description: 'Log level'     
        required: true
        default: 'warning'
      tags:
        description: 'Test scenario tags'

push, pull_request와 비슷하게 on 아래에 명시해주며, 내부 값 inputs로 메뉴얼 테스트 시 사용할 값을 받을 수 있습니다. (마지 Jenkins의 build with parameter와 비슷하죠.)

My case

name: Olaf

on:
   schedule:
     - cron: '55 22 * * *' # AM 07:55, South Korea!
   workflow_dispatch:
      inputs:
         logLevel:
            description: 'Log level'     
            required: true
            default: 'warning'
         tags:
            description: 'Test scenario tags'

jobs:
  build:
    runs-on: ubuntu-latest
    ... snip ...

1414 생성 시 git action 탭 내 workflow에 버튼이 생깁니다.

1415 클릭 시 바로 workflow가 동작합니다.

Conclusion

사실 github action을 코드 테스트 정도의 목적으로만 가볍게만 사용하고 있었는데, 막상 사용해보니 Jenkins 보다 더 편리하게 사용할 수 있는 부분이 많았습니다. (마켓에 있는 다른 action을 끌어쓰는 부분은 진짜 편리하네요)

1416 일해라 올라프!

보안 테스팅 관련하여 github action으로 자동화를 계획중인 부분이 있는데, 잘 마무리되면 게시글로 공유하도록 하겠습니다 😎

References

https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/


文章来源: https://www.hahwul.com/2020/10/18/how-to-trigger-github-action-manually/
如有侵权请联系:admin#unsafe.sh