💡 Github actions 란 build,test,deployment pipeline 을 자동화해주는 CI/CD 플랫폼이다.
PR
를 test,build 하고 production 환경에 PR
를 merge 하는 workflow
를 생성할 수 있다.events
가 발생할 경우 workflow 를 실행할 수 있는것이 기존 DevOps 와의 차이점이다.event
가 발생할 경우 trigger 될 workflow
를 정의할 수 있다.workflow
는 하나 이상의 순차적 또는 병행적으로 실행될 job
을 가진다.job
은 virtual machine runner
또는 container 내부 에서 실행된다.job
은 정의한 script 를 실행하는 여러개의 step
을 가지거나 workflow를 간단하게 하는 reusable extension 인 action
을 실행한다.하나이상의
jobs
를 실행하는 configurable automated process
YAML
파일로 정의된다.trigger
될 수 있다..github/workflows
폴더 안에 정의된다.workflow 가 run 하도록 trigger 하는 특정한 활동
같은 runner 실행되는 workflow 안의
steps
의 집합
action
이다.step
은 순서대로 실행되고 서로 dependent 하다.runner
에서 실행되기 때문에 서로 data 를 공유한다.복잡하지만 빈번하게 반복되는 작업을 수행하는 Github Actions platform 의 custom application
action
을 사용해 workfile 파일 안에 기입한 반복되는 많은 양의 코드를 줄일 수 있다.github Marketplace
에서 workflow에 적용할 action 을 찾을 수 있다.trigger 된 workflow 를 실행할 서버
.github/workflow/
이름의 폴더를 생성한다..github/workflow/
파일에 learn-github-actions.yml
파일명의 workflow 파일을 생성한다.name: learn-github-actions
run-name: ${{ github.actor }} is learning GitHub Actions
on: [push]
jobs:
check-bats-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
이 변경 사항을 commit
하고 repository 에 push
한다.
결과, 생성한 workflow 가 repository 에 저장되고, 누군가가 해당 repository 에 push 할 때 마다 생성한 workflow 가 실행된다.
name: learn-github-actions
: (optional) Github repository 의 Actions
탭에 나타날 workflow 명run-name: ${{ github.actor }} is learning GitHub Actions
: (optional) workflow 가 실행될 경우의 이름이다. 만약 지정하지 않거나 공백으로 입력할 경우 해당 workflow 를 run
시킨 event
와 관련된 정보가 기입된다push
또는 pull request
에 의해 trigger 됐다면,run-name
은 commit message
로 지정된다.on: [push]
: workflow trigger를 지정한다. 이 예시는 모든 브런치에 push 가 발생할 경우 trigger 된다.
jobs:
: 해당 workflow 에서 실행될 모든 job 의 그룹
- check-bats-version:
: job 이름 지정
runs-on: ubuntu-latest
: 최신의 Ubuntu Linux runner 에서 job 실행되도록 정의
steps:
: check-bats-version
job 에서 실행되는 모든 step 의 그룹. 여기에 기입되는 item 은 각각 분리된 action 또는 shell script
- uses: actions/checkout@v3
: 코드 저장소에 올려둔 코드를 CI
서버로 내려받은 후 특정 브랜치로 전환하는 행위를 일련의 과정으로 묶어서 제공해주는 것. Github Actions 에서 처리되는 모든 작업의 시작점이라고 할 수 있다.
Actions
tab 에 들어간다.workflow
를 클릭한다.run
의 이름을 클릭한다.job
을 클릭한다.step
의 결과를 확인한다.한마디로 해서
Github Actions
의 workflow 를 작성해 작성한 application 의 이미지를 repository 내에서 바로 이미지를 자동으로 만들 수 있다.(CI)