728x90
Github Action Core
- Github Action을 이해하기 위해서 알아야 하는 핵심 개념
- Workflow, Event, Job, Step, Action, Runner 등이 있음
Workflow
- 여러 Job으로 구성되고, Event에 의해 트리거될 수 있는 자동화된 프로세스의 최상위 개념
- Workflow 파일은 YAML으로 작성됨
- Github Repository의 .github/workflows 폴더 아래에 저장됨
Event
- Workflow를 Trigger(실행)하는 특정 활동이나 규칙
- 예를 들어 다음과 같은 상황에서 사용할 수 있음
- 특정 브랜치로 Push하거나
- 특정 브랜치로 Pull Request하거나
- 특정 시간대에 반복(Cron)
- Webhook을 사용해 외부 이벤트를 통해 실행
Job
- Job은 여러 Step으로 구성되고, 가상 환경의 인스턴스에서 실행됨
- 다른 Job에 의존 관계를 가질 수 있고, 독립적으로 병렬 실행도 가능함
Step
- Task들의 집합으로
- 커맨드를 날리거나 action을 실행할 수 있음
Action
- Workflow의 가장 작은 블럭(smallest portable building block)
- Job을 만들기 위해 Step들을 연결할 수 있음
- 재사용이 가능한 컴포넌트
- 개인적으로 만든 Action을 사용할 수도 있고, Marketplace에 있는 공용 Action을 사용할 수도 있음
- Github Marketplace와 Github Actions Repository에서 확인 가능
Runner
- Gitbub Action Runner 어플리케이션이 설치된 머신
- Workflow가 실행될 인스턴스
- 구분
- Github에서 호스팅해주는 Github-hosted runner
- Azure의 Standard_DS2_v2를 이용
- vCPU 2, 메모리 7GB, 임시 스토리지 14GB
- Azure의 Standard_DS2_v2를 이용
- 직접 호스팅하는 Self-hosted runner
Github Action 을 생성하는 일반적인 흐름
1. 코드 작성
2. 코드 작성 후 Workflow 정의
3. 정상적으로 작동하는지 Test
Workflow 정의
- 기본적인 방법 : .github/worfklows 폴더 안에 .yml 파일을 생성 → 템플릿 활용 가능
- yml 파일 예시
- Master 브랜치에 Push 또는 Pull Request가 올 경우 실행되는
CI란 이름을 가지는 Workflow
- Master 브랜치에 Push 또는 Pull Request가 올 경우 실행되는
Github Repo 에서 Actions 클릭
언어 등 개발환경 선ㅌ택 후 Configure 클릭하면 간단한 workflow를 생성할 수 있음
- Workflow 예시 중 Python으로 작성된 것은 Python Package using Anaconda,
Publish Python Package, Python application, Python package, Django,
Pylint 등이 있음
Python package를 예시로 사용, Github Repository 생성 후, hello.py 생성 후 Push
728x90
'PYTHON-BACK' 카테고리의 다른 글
#파이썬 23일차_Django_개발환경/동작원리/실습1 (0) | 2024.07.31 |
---|---|
#파이썬 22일차_Django (0) | 2024.07.30 |
#파이썬 21일차_GitHub Action + CI/CD (0) | 2024.07.29 |
#파이썬 20일차_GitHub Action (1) | 2024.07.26 |
#파이썬 19일차_GitHub Action (0) | 2024.07.25 |