Programming(216)
-
Github Actions - Filter
Filter필터란 언제 무엇을 실행할지 걸러낼지를 지정하는 규칙을 의미한다.크게 두가지로 나뉘는데 이벤트 트리거 필터(workflow 수준) : 워크 플로우 자체를 아예 시작할지말지를 결정한다조건식 필터(Job / Step 수준) : 워크 플로우가 시작된 후 각 job/step을 실행할지 말지를 결정한다이벤트 트리거 필터이벤트 트리거 필터는 워크 플로우가 돌지를 결정하는 것으로 on 아래에 설정하며, 대표적으로 branches / tags / paths가 있다.on: push: branches: [ main, 'release/*' ] # 이 브랜치에 푸시될 때만 tags: [ 'v*' ] # v로 시작하는 태그 푸시일 때만 paths: [ 'a..
2025.10.01 -
Github Actions - Context
ContextContext란 workflow 실행 중에 github, run , job, step, 환경, secret 등의 상태 및 값을 담은 읽기 전용 객체이다.Context를 쓰기 위해서는 표현식 구문 ${{}}의 내부에 작성해서 사용한다.${{github.sha}}${{runner.os}}${{matrix.node}} 대표적인 Context1) githubrepo, branch, commit, event의 정보를 담고 있다# 현재 워크플로우를 실행하는 저장소 명github.repository# 워크플로우를 트리거한 Git 참조(Reference) # 또는 branch(refs/heads/main) 또는 태그(ref/tags/v1.0.0)경로github.ref# 워크플로우를 트리거한 최신 커밋의 S..
2025.09.30 -
Github Actions - Checkout
이전에 re-run에서도 봤던 checkout에 대해서 한번 알아보도록 하자 Checkoutcheckout은 github의 저장소에서 파일을 빌드 머신(러너)로 내려 받는 동작을 말한다.Github Actions가 실행되면 러너는 빈 상태의 컴퓨터로 테스트, 빌드, 패키징, 배포등의 작업을 수행하려면 실제 이 러너안에 레포지토리의 파일이 존재해야 실행이 가능하다.그렇기에 대부분의 job에서는 첫 단계로 checkout을 실행해 파일을 내려받는다. checkout의 작업은 먼저 이번 실행 시점에 어떤 커밋(SHA)을 봐야할지를 확인하고, 그 커밋의 파일 스냅샷을 러너의 작업 폴더려 내려 받는데, 이 때 옵션을 전달하는 것에 따라서 서브모듈, Git LFS 파일도 같이 내려받을 수 있다.(self-hoste..
2025.09.30 -
Github Actions - re-run
re-runre-run은 같은 커밋(SHA), 같은 워크플로우 정의로 실패, 취소(혹은 조건에 의해 스킵)된 잡을 다시 돌려보는 것이다.워크플로우를 새로 돌리는게 아니라 같은 Run ID로 시도 번호만 증가하게 된다. 먼저 re-run하기 위해서 워크플로우를 하나 생성해보자.그리고 push 이벤트에 반응 하는 workflow를 만들어주자.이제 job을 만들텐데 job은 현재 워크플로우가 보고 있는 커밋을 기준으로 데이터를 가져오는 checkout을 사용해주도록 하자이때는 run이 아니라 uses를 사용하고 use에 actions/checkout@v4를 사용한다.이건 내 저장소의 파일들을 러너가 활동하는 환경(빌드 머신)으로 내려받는다라는 명령어이다.깃허브 액션이 실행될 때 러너가 활동하는 환경은 아예 아..
2025.09.30 -
Github Actions - needs
workflow를 실행하다 보면 job들은 모두 병렬로 돌아간다고 얘기했던 적이 있었다.근데 job 중에서는 서로 의존 관계를 가지는 경우들이 존재한다.예를 들면 build → test → deploy 와 같이 서로 의존 관계를 가지는 형태의 job이 생성될 수 있는데 job이 병렬로 실행되면 순서의 보장이 되지 않고, 앞 단계가 실패하더라도 다른 단계들이 병렬로 시작되어 러너와 시간의 낭비가 생긴다.또한 아티팩트(빌드 산출물)이 먼저 만들어져야 하는데 다른 잡이 먼저 돌아 건너 뛰는 상황이 발생하기도 한다. 이때 이를 해결해 줄 수 있는데 needs이다 needsneeds는 병렬로 수행되는 job의 실행 순서를 명시해서 그래프로 묶어 선행 성공 후에만 후행 실행하고 실패하면 기본적으로 스킵한다.이를 통..
2025.09.30 -
Github Actions - workflow 다중 이벤트 등록
여러 이벤트에서 하나의 workflow를 불러야하는 경우가 있을 수도 있는데 이런 경우도 등록이 가능하다서로 크게 특별할 것은 없고 등록할때 이벤트를 다수 설정해주면 된다 . 만들어 보면서 확인해보자. 먼저 파일을 하나 만들어주고이름을 먼저 작성해주자.이제 on의 하위로 이벤트를 등록하는데 그냥 간단하게 다수의 이벤트를 지정하면 된다.이렇게 해두고 각 이벤트 마다의 job을 분기로 나누면 각 이벤트 마다 실행할 job을 나눌 수도 있다. job을 한번 만들어보자면이렇게 분기를 쳐서 만들 수 있다. 한번 commit & push 하고 이제 먼저 issue와 workflow_dispatcher 부터 확인해보자.먼저 issue에 글을 달고 실행 되었고 workflow-dispatcher로 실행해보면실행 되었고..
2025.09.29