프로필사진

Go, Vantage point

가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.


Github | https://github.com/overnew/

Blog | https://everenew.tistory.com/





티스토리 뷰

반응형

 

 

 

 

 

기존에는 한 폴더 내의 변경 만으로도 모든 폴더가 각각 빌드되는 Workflow를 적용하고 있었다. 

 

간단한 readme.md의 변경 조차도 모든 폴더가 빌드됨...

 

 

 

 

아무리 Public Repository는 Github Actions가 무료라도 이런 비효율성을 참을 수가 없으니 바꾸어 보자.

 

 

 

 

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore

 

Workflow syntax for GitHub Actions - GitHub Docs

A workflow is a configurable automated process made up of one or more jobs. You must create a YAML file to define your workflow configuration.

docs.github.com

 

 

가장 간편한 방법은 on에서 paths 또는 paths-ignore를 사용하는 것이다.

 

 

paths를 사용하면 대상 폴더 내의 변경이 일어 났을 경우에만 workflow를 trigger 시킬 수 있다.

on:
  push:
    paths:
      - '대상_폴더/**'

 

이때 **는 wildcard characters로, 폴더 내의 모든 대상을 가리키기 위해 사용된다.

 

 

 

 

 

아래 처럼 사용하면. js 확장자를 가진 코드 변경 시에만 trigger 할 수 있다.

on:
  push:
    paths:
      - '**.js'

 

 

 

반대로 paths-ignore을 사용하면, 해당 경로의 변경은 actions를 trigger 하지 않도록 방지할 수 있다.

on:
  push:
    paths-ignore:
      - '대상_폴더/**'

 

 

 

 

 

이를 통해 각 폴더 별로만 트리거되는 workflow를 작성해 주면, 같은 repository 내에서도 별개의 CI/CD를 적용할 수 있다.

 

 

본인의 경우 폴더 별로 docker image를 빌드하고 업로드 하는 코드로 활용하였다.

https://github.com/overnew/JobPostingCrawler/tree/main/.github/workflows

 

 

 

 

반응형
댓글
반응형
인기글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함