🎯 GitHub Actions/Packages의 GHES 설정 및 사용
1. GHES Actions/Packages 를 구성하기 위해 필요한 것? 🤔
GitHub Enterprise Server with version 3.0 or higher
- 3.0 with Actions : Actions의 사용을 위해 하드웨어 리소스 증가 필요 Link
- CPU/메모리 별 최대 throughput을 나타내는 Job 갯수 : GitHub 내부 테스트 설명 Link
Self-hosted Runner
- 실제 Job을 수행할 환경 (Linux/Window/Mac)
- GitHub-hosted runner는 현재 GitHub Enterprise Cloud에서만 가능 (GitHub Enterprise Server는 향후지원예정)
S3 compatible blob storage
- Actions 로그 및 Packages 저장용
- Azure blob storage, AWS
- 순수 온프렘을 위해서는 MinIO NAS Gateway
2. GHES Actions/Packages 설정 🛠️
Instance에서 Actions/Packages 활성화 및 S3 blob storage 설정
- Force path style 선택
GitHub Enterprise 레벨에서의 조직별 활성화/비활성화 설정 및 사용할 Actions 허용정책 설정
-
Enterprise 설정 > Policies > Actions 메뉴
-
‘Enable for all organizations’ 또는 허용할 조직 👫 선택
-
허용할 Actions 타입 선택
- Allow all actions : 모든 Actions 허용
- Allow local actions only : Enterprise 내부의 저장소에 정의된 Actions들만 허용
- Allow select actions : 선택된 Actions들만 허용
- Private folk로 부터의 Pull Requests에 의한 Workflow 실행 허용
Org 레벨에서의 Actions 허용 정책 설정
- Org 설정 > Actions 메뉴
- Enterprise 레벨의 Actions 관련 정책 설정과 동일 : 허용할 Actions 설정 및 Private folk로 부터의 PR에 의한 워크플로우 실행
Repo 레벨에서의 Actions 허용 정책 설정
- Repo 설정 > Actions 메뉴
- Enterprise 및 Org 레벨의 Actions 관련 정책 설정과 동일한 설정 : 허용할 Actions 설정 및 Private folk로 부터의 PR에 의한 워크플로우 실행
3. GHES Actions 을 위한 구성요소 설명 🤖
Actions Runner 설명 🏃
Minio Gateway for NAS Storage 🧺
-
Minio NAS Gateway는 Docker를 이용해 쉽게 구성이 가능합니다.
-
버킷 생성 후 GitHub Enterprise Server와 연동
-
GitHub Enterprise Server가 HTTP Proxy Server와 연동되어 있다면,
localhost
와127.0.0.1
을HTTP Proxy Exclusion list
에 추가