Seungwoo Hong
Front-end developer
Aiden Hong
2021.09.02
@blod9
Github action은 일련된 작업들을 자동화하는데 도움을 주는 하나의 툴
Github action은 이벤트 주도적(event-driven)이다.
예를 들어, 개발자가 Pull request를 날리면 테스트를 자동으로 수행한다.
Pull request
Run test
Github action은 하나의 event가 일어나면 자동으로 트리거 하여 실행됩니다.
- Workflow
action의 루트, 레포지토리에 추가 되어서 event가 발생하면 자동으로 트리거 되어 실행되고 하나 또는 여러개의 Job을 구성할 수 있다.
- Event
event는 workflow가 트리거 되는 액션을 말한다.
ex. pull request, push, cron, manually
- Job
Job은 하나의 Runner(가상 인스턴스)에서 실행되는 단위로 여러 개의 Step으로 구성 된다. 여러 개의 job은 병령적으로 실행 될 수도 있고 순차적으로 실행 될 수도 있다.
- Step
하나의 job을 구성하는 각각의 작은 작업을 말한다. step은 action이나 shell command를 실행할 수 있으며, 각 step들은 하나의 job안에 있기때문에 데이터 공유가 가능하다.
- action
action은 workflow를 구성하는 가장 작은 단위이다. action은 재사용하기위해 step들은 연결 놓은 컴포넌트이다. action은 개발자가 만들 수 있으며 커뮤니티에서 만들어 놓은 action을 쓸 수도 있다.
- runner
하나의 job이 실행되는 가상 인스턴스이다. github에서 제공하는 runner를 사용할 수도 있고 직접 호스팅하는 runner를 사용할 수도 있다. github에서 제공하는 runner는 Ubuntu Linux, Microsoft Windows, macOS 3가지 이다.
자세한 사양은 링크 참고
Github action은 YAML 파일로 작성한다. 코드베이스로 버전관리가 가능하다.
각 레포지토리 루트에 .github/workflows 디렉토리 안에 YAML파일을 작성한다. 이건 필수적인 규칙이다. workflow.yml 파일명은 자유롭게 작명하면 된다.
ex. .github/workflow/example.yml
1. 우선 레포지토리를 하나 생성한다.
2. 레포지토리 루트에 .github/workflows/ 디렉토리를 만든다.
3. .github/workflows/ 안에 example.yml 파일 생성
4. 아래 코드 작성하고 커밋 후 푸시
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '14'
- run: npm install -g bats
- run: bats -vBy Seungwoo Hong