ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TIL-2024.06.30 - Git Actions - 005. Activity Types & Filters , Workflow Skip
    > DevOps/Git Actions 2024. 6. 30. 22:19

     

     

     

     

     

     

    목표

    1. Event 제어 

    2. Activity Types & Filters

    3. Workflow 취소와 스킵

     


     

    Event 제어

    > Event의  Activity TypeFilter 를 통해 Workflow 를 더 세밀하게 제어 및 특정 조건에 따라 트리거되도록 설정 가능

     

     

     

     

    - Activity Type은 특정 이벤트내에서 다양한 활동 유형을 지정 (PR가 열리거나 닫힐 때 등 특정 활동에 대해 WF 트리거).

    - Filter 은 이벤트가 발생할 때, 추가적인 조건을 설정 (특정 브랜치, 태그, 파일 경로 등으로 워크플로우 트리거를 제한).

     


    Activity Type

    > 특정 이벤트내에서 다양한 활동 유형

     

    name: Test Project
    on:
      pull_request:
        types: [opened, synchronize, closed]

     

    - types 필드를 사용하여 특정 활동 유형에 대해 워크플로우를 실행 가능. (e.g. opened, synchronize, closed와 같은 활동 유형 지정)

    - 각 이벤트 종류 마다, 사용할 수 있는 Action Types 은 다르기 때문에, 공식 문서 참조 필요

     

     

    PR 된 경우, trigger 되도록 설정

     

     

     

     


    Filter

    > 사용하면 이벤트가 발생했을 때 보다 구체적인 조건을 설정하여 워크플로우가 실행 

    > 대표적인 필터로는 branches, tags, paths, paths-ignore

     

     

    # branches & path-ignore 예제
    
      push:
        # branches: 특정 브랜치에 푸시가 발생했을 때 워크플로우를 트리거
        branches:
          - main # only pushes to the main branch will trigger workflow
          - 'dev-*' # dev-new dev-this-is-new
          - 'feat/**' # feat/new  feat/new/button
    
        # paths-ignore:  해당 디렉토리 내의 변경은 워크플로우를 트리거 안함.
        paths-ignore:
          - '.github/workflows/*'

     

     

    - branches: 특정 브랜치에 푸시될 때만 워크플로우를 실행.

    - path-ignore: 특정 파일이나 디렉토리에 변경이 있을 때 워크플로우 실행을 무시

     


    # paths 예제
    
    on:
      push:
        paths:
          - 'src/**'
          - 'config/**'

     

    - paths: 특정 파일이나 디렉토리에 변경이 있을 때 워크플로우 실행을 무시

     


    # tags 예제
    
    on:
      push:
        tags:
          - 'v1.*'

     

    - tags: 특정 태그가 푸시될 때 워크플로우를 실행

     

     


    Workflow  Skip

    > 커밋 메시지에 특정 문자열을 포함시켜 워크플로우를 Skip 가능

     

     

    git commit -m 'skip this' [skip ci]

     

     

     

     

     

     

     

     

    댓글

Designed by Tistory.