깃허브 액션
: 깃허브에서 제공하는 CI/CD 서비스
: 설정파일인 yml 파일을 정의하고 레포지터리에 업로드
: Pull Request, Push 등의 이벤트가 발생했을 때 애플리케이션을 빌드하고 서버에 배포하는 등의 동작 가능
: 코드 변경분에 이상이 있는지 검사, 매일 특정 시간에 통계 데이터 수집도 가능
workflows
: 깃허브 액션의 가장 상위 개념으로. 자동화 작업 과정을 일컬음
: 레포지터리 내에서 ./gohub/workflows 디렉터리 아래에 yml 파일로 설정
: 하나의 레포지터리에는 여러 개의 워크플로우를 둘 수 있음
: yml 파일에서 on 속성을 통해 워크플로우가 언제 실행되는지 정의
on:
push:
branches:
- main
jobs:
# ...(생략)...
on:
schedule:
- cron: "0 0 * * *"
jobs:
# ...(생략)...
events
: workflow 실행을 트리거하는 특정 활동이나 규칙
: pull request, push 등
jobs
: 독립된 인스턴스 또는 컨테이너에서 작동하는 하나의 처리 단위
: 하나의 워크플로우에는 적어도 하나의 작업이 있어야함
: 워크플로우 하나에 여러 개의 작업이 있을 수 있음
: 모든 작업은 동시에 실행되며 필요 시 작업간 의존관계를 설정하여 실행 순서를 제어 가능
: yml 파일 내에서 jobs 속성을 통해 작업 ID와 내용간 mapping 형태로 명시
: 필수로 들어가야하는 runs-on 속성을 통해 실행환경 지정 필요
# ...(생략)...
jobs:
job1:
runs-on: ubuntu-latest
steps:
# ...(생략)...
job2:
# job2에 대한 세부 내용
job3:
# job3에 대한 세부 내용
steps
: 작업 간의 순서를 정하기 위해 단계를 정하는 것
: 작업 단계는 커맨드나 스크립트, 액션이 될 수 있음
: 커맨드나 스크립트를 실행 할 때는 run 속성 사용
: 액션을 사용할 때는 uses속성 사용
: yml 문법에서 시퀀스 타입을 사용하기 때문에 각 단계마다 -을 붙혀줘야함
# ...(생략)...
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm install
- run: npm test
Actions
: 깃허브 액션에서 빈번하게 필요한 반복 단계를 재사용하기 용이하도록 제공되는 작업 공유 메커니즘
: 하나의 레포지터리 범위 내에서 여러 워크플로우 간 공유
: 공개 레포지터에서 공유 시 깃허브 상 모든 레포지터리에서도 사용 가능
: 깃허브에서 제공하는 대표적인 액션으로는 actions/checkout이 있음
- Github Marketplace
: 수많은 벤더가 공개한 액션을 공개한 저장소
: https://github.com/marketplace?type=actions
GitHub Marketplace: actions to improve your workflow
Find the actions that help your team build better, together.
github.com
runners
: workflow가 트리거 될 때 실행하는 서버
: 각 runner는 한 번에 1개의 job을 실행할 수 있음
: 깃허브에서 호스팅 해주는 gihub-hosted runner와 직접 호스팅하는 Self-hosted runner로 나뉨
: github-hosted runner는 azure의 standard_DS2_v2를 제공 (vCPU 2 / RAM 7GB / storage 14GB)
템플릿 활용
전체적인 컴포넌트 이해하기
name: CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run a one-line script
run: echo Hello, world!
- name: Run a multi-line script
run: |
echo Add other actions to build,
echo test, and deploy your project.
이외 가능한 기능들
: 민감 정보 저장 하고 사용하기
: 여러 버전으로 실행하기
: 캐시 사용하기
: artifact 저장하기 등
참고
- public 레포지터리
: 완전 무료
- private 레포지터리
: 한달에 500MB, 2000분의 사용 시간 제공
: 과금정보 참조 (https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions)
Refference
GitHub Actions의 소개와 핵심 개념
Engineering Blog by Dale Seo
www.daleseo.com
Github Action이란
github repository가 있다면 github action을 사용하여 workflow를 구성할 수 있습니다. workflow의 예시는 다음과 같습니다. test code 실행 배포 자동화 하고자 하는 스크립트 파이썬 버전 실행 여부 확인 가격
brownbears.tistory.com
Github Action 사용법 정리
Github Action 사용법 및 cron 사용 방법에 대해 정리한 글입니다 Github Action으로 YES24 IT 신간을 파이썬으로 크롤링 후 Issue에 업로드하는 예제가 있습니다 Github Action with Python Github action with cron, Github a
zzsza.github.io
Github Actions 예제로 workflow 알아보기 (비용, 제한)
2018년 마이크로소프트에서 Github를 인수하고, 여러가지 업데이트 등이 이루어져있다. 빌게이츠 시절 마이크로소프트는 오픈 소스를 배척하는 기업라는 이미지를 가지고 있었는데, Satya Nadella가 C
meaownworld.tistory.com
'CICD > Github action' 카테고리의 다른 글
github action CICD 브랜치에서 테스트 하는 방법 (1) | 2024.07.24 |
---|---|
깃허브 액션 CICD 도입기 (0) | 2024.03.17 |
Github Actions self-hosted Runner 등록 (0) | 2023.08.12 |