참고사항 : Github Action 요소 종류
- workflows : 워크 플로우는 하나 이상의 job으로 구성되고 event에 의해 트리거될 수 있는 자동화된 프로세스이며, YAML으로 작성되고 Github Repository의 .github/workflows 폴더 아래에 저장한다. repository에는 여러 workflow를 가질 수 있으며 각 workflow는 서로 다른 작업을 수행할 수 있다.
(워크 플로우는 다양한 job으로 구성되어 있고 병렬로 수행한다)- actions : 워크 플로우의 가장 작은 블럭으로 jobs를 만들기 위해 step 들을 연결할 수 있으며, 재사용이 가능한 컴포넌트로서 반복적인 코드의 양을 줄일 수 있고 git repository를 가져오거나 클라우드 공급자에게 인증을 설정할 수도 있다.
- events : 워크 플로우의 실행을 트리거하는 특정 활동이나 규칙을 말한다.
- jobs : 여러 step으로 구성되고 가상 환경의 인스턴스에서 실행되며, 다른 job에 의존 관계를 가질 수 있고 독립적으로 병렬 실행도 가능하다.
- steps : task들의 집합으로 커맨드를 날리거나 쉘(터미널) 스크립트 실행하는 것처럼 action을 실행할 수 있다.
(또한, 개인적으로 만든 action을 작성할 수도 있고 github marketplace에 있는 공용 action을 사용도 가능하다)- runners : 워크 플로우가 트리거될 때 실행하는 서버이며, 각 runner는 1번에 1개의 job을 실행할 수 있. Github에서 호스팅해주는 Github-hosted runner와 직접 호스팅하는 Self-hosted runner로 나뉜다.
3-1 체크아웃 액션 사용 하기)
name: Our Workflow
on: push
jobs:
checkout:
runs-on: ubuntu-latest
steps:
- run: ls -al
- uses: actions/checkout@v4
@v4
는 메이저 버전을 뜻하며 이것만 잘 명시만 해줘도 마이너나 패치 버전이 올라갈때 자동으로 최신버전이 올라가기 때문에 귀찮게 매번 버전업을 해주지 않아도 됨3-2 내려받은 코드 확인하기)
name: Our Workflow
on: push
jobs:
checkout:
runs-on: ubuntu-latest
steps:
- run: ls -al
- uses: actions/checkout@v4
- run: ls -al
- run: cat .github/workflows/checkout.yml
3-3 다른 경로에 코드 내려받기)
name: Our Workflow
on: push
jobs:
checkout:
runs-on: ubuntu-latest
steps:
- run: ls -al
- uses: actions/checkout@v4
with:
path: our-source
- run: ls -al our-source
- run: cat our-source/.github/workflows/checkout.yml
3-4 과거 변경 이력 불러오기)
name: Our Workflow
on: push
jobs:
checkout:
runs-on: ubuntu-latest
steps:
- run: ls -al
- uses: actions/checkout@v4
with:
fetch-depth: 3
- run: git log --pretty=oneline
fetch-depth
Actions를 사용할 수 있다.fetch-depth
에 3을 입력하면 최신 커밋 뿐만 아니라 그 전의 커밋 내용도 내려받음으로써 총 3개의 변경이력을 내려받는 것이다.git log --pretty=oneline
을 이용해 커밋 당 한 줄에 표시되게 할 수 있다.3-5 다른 저장소의 코드 내려받기)
name: Our Workflow
on: push
jobs:
checkout:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
repository: actions/checkout
ref: v4
- run: ls -al
여기를 클릭하시면 실습용 레포지토리로 이동할 수 있습니다.