서비스 배포 시 자동으로 생성되는 Github Actions의 workflow를 적용해 간편하게 배포자동화할 수 있습니다.
ale
과 GitHub의 통신을 위한 시크릿 설정이 필요합니다.
GitHub Personal access token 발급
GitHub 계정 Settings의 Developer settings 화면에서 Personal access tokens 메뉴의 Generate new token(classic)
을 클릭하세요.
이어지는 화면에서repo
,admin:public_key
권한을 부여하고 토큰을 생성하세요.
생성된 토큰값을 보관하세요.
ale의 API Key 발급
스페이스 설정화면의 인증 메뉴에서 새로운 API 키 생성
을 클릭해 키를 생성하고 보관하세요.
위의 시크릿을 GitHub 저장소의 Actions Secret으로 설정
GitHub 저장소의 Settings화면 Secrets and variables의 Actions항목에서 New repository secret
을 클릭하세요.
Name값에 주의하며 2개의 Repository secret을 생성하세요.
Name | Secret |
---|---|
ALE_TOKEN | ale API key |
GHP_TOKEN | GitHub Personal Access Token |
Github Actions를 적용하려는 서비스 상세페이지의 CLI탭에서 Github Actions 항목의 코드를 복사하세요.
ale
이 설치된 환경에 따라 자동으로 변경됩니다.
프로젝트의 루트 디렉토리에 .github/workflows 디렉토리를 생성하고 ale
에서 복사한 코드를 내용으로 하는 yaml 파일을 만들어주세요.
GitHub Actions는ale
에서 저장소를 Pull 할 수 있도록 GitHub 저장소 Deploy Key 를 설정하는 connect 액션과 배포 설정을ale
에 전송하고 배포를 요청하는 deploy 액션으로 작동합니다
connect 액션 입력값
입력값(Inputs) | 필수 / 기본값 | |
---|---|---|
token | ale API Key | 필수 |
ghtoken | GitHub Personal Token | 필수 |
endpoint | ale API Endpoint | 필수 (https://app.[도메인]/api) |
scope | 연결하려는 스페이스 이름 | 기본값 : API Key 사용자의 스페이스명 |
repo | GitHub 저장소(형식 user/repo) | 기본값 : 현재 액션이 실행중인 저장소 |
readOnly | ‘true’로 설정 시 읽기전용 배포키 생성 | 기본값 : false |
deploy 액션 입력값
입력값(Inputs) | 필수 / 기본값 | |
---|---|---|
token | ale API Key | 필수 |
endpoint | ale API Endpoint | 필수 (https://app.[도메인]/api) |
project | 배포할 프로젝트 이름 | 필수 (스페이스/프로젝트) |
stage | 배포할 배포환경 이름 | 기본값 : 프로젝트 내 기본 배포환경 |
allStages | ’true’로 설정 시 모든 배포환경에 배포 | 기본값 : false |
repo | GitHub 저장소(형식 user/repo) | 현재 액션이 실행중인 저장소 |
file | 배포 설정파일의 저장소 위치 | 기본값 : .ale/app.yaml |
json | 배포 설정 JSON 텍스트 | - |
yaml | 배포 설정 yaml 텍스트 | - |
자동으로 생성된 workflow 파일을 서비스 설정에 맞게 수정해서 활용할 수 있습니다.
서브 디렉토리 설정
path에 배포할 디렉토리를 설정할 수 있습니다.
리소스 쿼터 변경
yaml 파일에 리소스에 관한 내용이 없는 경우, 대시보드에서 설정한 리소스 쿼터를 반영합니다. yaml 파일로 리소스를 관리하려는 경우 resources에spot
,cpu
,memory
,disk
,replicas
를 설정해 적용할 수 있습니다.
환경 변수 설정
대시보드에서 환경 변수를 설정해서 배포한 경우, CLI탭의 workflow 파일 내용에 자동으로 반영됩니다. yaml 파일에 수동으로 적용하려는 경우 options.env 에 name과 value를 배열 형태로 설정해 적용할 수 있습니다.
서비스 대상 포트
options.ports 에서 콤마(,)로 포트를 구분하여 총 3개의 포트까지 설정 가능합니다.