티스토리 뷰
Events, Workflows, Jobs, Action, Runners의 개념이 존재.
Github Actions은 어떤 이벤트가 발생했을 때 자동으로 수행하게 만들어준다.
Events
on : push
main 브랜치로 push하거나 이런 방식
Workflow
Work flow는 어떤 행동을 할지 결정한다.
안에 어떤 다수의 Job을 넣을 수 있고, 이 Job은 Step을 가진다.
Job : run unit tests
Job 안에는 step이 있는데, npm test 같은 명령어나,
action 등의 (다양한 명령어)를 사용할 수 있다.
사용하려면
프로젝트 경로 안에 .github/workflows/workflow.yml 이런 식으로 만든다.
yml 이름은 딴 것이어도 가능
name : learning-github-actions
on: [push] # push가 발생하면
jobs:
check-bats-version: #어떤 job인지
runs-on : ubuntu-latest #runner가 어떤 vm을 사용할 것인지
steps: #어떤 순서대로 job들을 실행할 것인지
-uses : actions/checkout@v3 #action을 사용하는데 checkoout action을 사용할 것
-uses: actions/setup-node@v3 #node를 셋업해주는 action
with:
node-version: '14' #with을 통해서 node 버전을 명시
-run : npm install -g bats #원하는 명령어(shell script)
-run : bats -v
github repository의 actions 메뉴
템플릿을 자동으로 추천해주고, configure 누르면 기본적으로 template이 실행된다.
해당 workflows를 선택할 수 있는 단어 이름을 만든다.
job의 이름을 test
문서에 가면 어떤 머신이 runs-on에 쓸 수 있는지 볼 수 있다.
https://docs.github.com/en/actions/about-github-actions/understanding-github-actions#workflows
strategy에서는 각각 다른 환경에서 여러번 동작해야 하는 경우 사용할 수 있다.
동일한 job을 각각 다른 node-version에서 실행하는 것으로 만들 수 있다.
오른쪽 상단의 markeplace에서 checkout이라는 명령어를 검색하면 어떻게 사용하는지 알 수 있다.
이렇게 만든 다음에 커밋을 해주면 되고, action에 다시 들어가보면 방금 푸시한 커밋에 문제가 없는 걸 확인해 볼 수 있다.
새로운 브랜치를 만들고,
git checkout -b break-test
더한다.
git add -u
git commit -m "break-test"
git push --set-upstream origin break-test
main에 pull request를 하면 해당하는 action도 자동으로 실행된다.
create status badge를 readme에 붙여서 이용하면, 현재의 workflow가 정상이라는 배지도 만들 수 있다.