액션 설정
Codeflow 액션 설정은 리포지토리의 워크플로우 실행 환경을 구성하는 설정 메뉴입니다. 대상 리포지토리 상세 화면의 액션 설정 탭에서 러너 연결에 필요한 리포지토리 토큰을 확인하고, 워크플로우 작업을 실행할 Self-hosted runner(자체 호스팅 러너)와 워크플로우에서 사용할 리포지토리 변수를 관리할 수 있습니다.
액션 설정 항목
액션 설정은 워크플로우를 실행하기 위한 리포지토리 단위 설정입니다. 워크플로우 자체는 기본 브랜치의 .codeflow/workflows 경로에 YAML 파일로 정의하며, 액션 설정에서는 해당 워크플로우를 실행하는 데 필요한 환경 정보를 관리합니다.
| 구분 | 설명 |
|---|---|
| 리포지토리 토큰 | 러너와 리포지토리를 연결하기 위한 매핑용 식별자 |
| 러너 | 워크플로우 작업을 실제로 실행하는 환경 |
| 리포지토리 변수 | 워크플로우에서 반복적으로 사용하는 값을 재사용하기 위한 변수 |
워크플로우 파일 작성 및 실행 방법은 워크플로우 관리를 참고하세요.
리포지토리 토큰
리포지토리 토큰은 러너를 리포지토리에 연결하기 위한 매핑용 식별자입니다. 리포지토리 생성 시 자동으로 발급되며, 러너를 연결할 때 사용됩니다. 별도의 만료 기간이 없는 무기한 토큰으로, 재발급 및 폐기 기능은 제공하지 않습니다. 또한 리포지토리 조회 권한이 있는 모든 사용자가 확인할 수 있습니다.
실제 보안 인증은 IAM 액세스 키로 처리됩니다. 리포지토리 토큰은 러너와 리포지토리를 연결하기 위한 매핑용 식별자로, 인증이나 권한 부여에 사용되지 않습니다.
러너 관리
러너는 워크플로우 작업을 실제로 실행하는 환경으로, 현재는 사용자가 직접 구성한 서버에 설치하는 Self-hosted runner(자체 호스팅 러너)만 지원합니다.
워크플로우 작업을 수행하려면 러너를 리포지토리에 연결한 후 실행해야 하며, 러너는 실행 상태에 따라 작업을 처리하거나 대기 상태를 유지합니다.
러너 실행 환경 준비
러너를 실행할 서버를 준비합니다. Linux, macOS, Windows 환경에서 사용할 수 있습니다.
러너에서 리포지토리에 접근할 수 있어야 합니다.
러너 실행 환경을 준비하고 Codeflow 워크플로우를 실행하는 구성 예제는 Codeflow와 Deployflow로 CI/CD 파이프라인 구축 튜토리얼에서 확인할 수 있습니다.
러너 실행 방식
러너는 실행 방식에 따라 두 가지 방법(실행 파일 방식, 컨테이너 방식)으로 사용할 수 있습니다.
| 구분 | 실행 파일 방식 | 컨테이너 방식 |
|---|---|---|
| 러너 등록 | 수동 | 자동 |
| 실행 방식 | 명령어 실행 | 컨테이너 실행 |
| 실행 포함 여부 | 별도 실행 필요 | 실행 시 자동 수행 |
| 환경 구성 | 직접 구성 | 컨테이너 기반 |
실행 파일 방식
실행 파일 방식은 러너 클라이언트를 다운로드한 후, 러너 등록과 실행을 각각 별도의 명령어로 수행하는 방식입니다.
러너 클라이언트 다운로드 후 OS별로 다운로드 애플리케이션 열기 허용 설정이 필요할 수 있습니다. Windows의 경우 Windows Defender 등의 백신 프로그램에 감지되어 실행되지 않거나 자동 삭제될 수 있습니다. 그런 경우에는 백신 프로그램에 화이트 리스트 등록이 필요합니다.
-
러너 구동을 위해 OS 환경에 맞는 클라이언트를 다운로드합니다.
파일 버전 다운로드 링크 Linux x86_64 64bit 0.1.2 다운로드 Linux ARM64 64bit 0.1.2 다운로드 macOS x86_64 64bit 0.1.2 다운로드 macOS ARM64 64bit 0.1.2 다운로드 Windows i386 32bit 0.1.2 다운로드 -
다운로드한 러너 클라이언트에 실행 권한을 부여합니다.
Linux/macOS 파일 실행 권한 부여cd ${DownloadPath}
chmod +x codeflow_runner파라미터 유형 필수 여부 설명 DownloadPath🖌︎ String 필수 러너 클라이언트가 위치한 디렉터리 경로 -
명령어로 러너를 등록합니다.
러너 등록./codeflow_runner register \
--endpoint-url ${endpoint_url} \
--token ${runner_token} \
--name ${runner_name} \
--labels ${runner_labels} \
--no-interactive파라미터 필수 여부 설명 endpoint_url🖌︎ 필수 Codeflow 엔드포인트 URL
- 예:https://codeflow-git.kr-central-2.kakaocloud.com
- 리전에 따라kr-central-2부분이 변경됩니다.runner_token🖌︎ 필수 러너 등록에 사용되는 리포지토리 토큰 runner_name🖌︎ 선택 러너 이름
- 입력값을 비워두면 자동으로 설정runner_labels🖌︎ 선택 워크플로우 파일에서 작업을 실행할 러너를 지정하는 데 사용하는 러너 태그 -
러너 등록 후 다음 명령어로 러너를 실행합니다. 실행이 성공하면 러너가
Idle상태가 됩니다../codeflow_runner daemon
컨테이너 방식
컨테이너를 사용하면 수동 설정 없이 러너를 실행할 수 있습니다. 컨테이너 실행 시 러너 등록과 실행이 자동으로 수행됩니다.
-
러너가 정상적으로 동작하려면 컨테이너 실행 시 아래의 환경 변수를 반드시 입력해야 합니다.
환경 변수 설정export KC_CODEFLOW_ENDPOINT_URL='${KC_CODEFLOW_ENDPOINT_URL}'
export KC_CODEFLOW_ACCESS_KEY_ID='${KC_CODEFLOW_ACCESS_KEY_ID}'
export KC_CODEFLOW_SECRET_ACCESS_ID='${KC_CODEFLOW_SECRET_ACCESS_ID}'
export KC_CODEFLOW_RUNNER_REGISTRATION_TOKEN='${KC_CODEFLOW_RUNNER_REGISTRATION_TOKEN}'
export KC_CODEFLOW_RUNNER_NAME='${KC_CODEFLOW_RUNNER_NAME}'
export KC_CODEFLOW_RUNNER_LABELS='${KC_CODEFLOW_RUNNER_LABELS}'
export KC_CODEFLOW_RUNNER_EPHEMERAL='${KC_CODEFLOW_RUNNER_EPHEMERAL}'환경 변수 설명 KC_CODEFLOW_ENDPOINT_URL🖌︎ Codeflow 엔드포인트 URL
- 예:https://codeflow-git.kr-central-2.kakaocloud.com
- 리전에 따라kr-central-2부분이 변경됩니다.KC_CODEFLOW_ACCESS_KEY_ID🖌︎ IAM 액세스 키 ID
- 자세한 내용은 액세스 키 생성하기를 참고하세요.KC_CODEFLOW_SECRET_ACCESS_ID🖌︎ 보안 액세스 키 KC_CODEFLOW_RUNNER_REGISTRATION_TOKEN🖌︎ 러너 등록에 사용되는 리포지토리 토큰 KC_CODEFLOW_RUNNER_NAME🖌︎ 러너 이름
- 입력값을 비워두면 자동으로 설정됩니다.KC_CODEFLOW_RUNNER_LABELS🖌︎ 러너 태그
- 선택 항목입니다.KC_CODEFLOW_RUNNER_EPHEMERAL🖌︎ 단일 작업 수행 후 러너 자동 삭제 여부
- 입력값: true 또는 falseKC_CODEFLOW_RUNNER_EPHEMERAL 동작 방식KC_CODEFLOW_RUNNER_EPHEMERAL을true로 설정하면 하나의 작업만 처리한 후 러너가 자동으로 종료 및 등록 해제됩니다.false로 설정하면 작업 완료 후에도 러너가 종료되지 않고 다음 작업을 계속 대기 및 처리합니다.- 기본값은
false입니다.
- 기본값은
-
설정한 환경 변수를 적용하여 컨테이너를 실행합니다.
컨테이너 실행 (Docker 예시)docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-e KC_CODEFLOW_ENDPOINT_URL="${KC_CODEFLOW_ENDPOINT_URL}" \
-e KC_CODEFLOW_ACCESS_KEY_ID="${KC_CODEFLOW_ACCESS_KEY_ID}" \
-e KC_CODEFLOW_SECRET_ACCESS_ID="${KC_CODEFLOW_SECRET_ACCESS_ID}" \
-e KC_CODEFLOW_RUNNER_REGISTRATION_TOKEN="${KC_CODEFLOW_RUNNER_REGISTRATION_TOKEN}" \
-e KC_CODEFLOW_RUNNER_NAME="${KC_CODEFLOW_RUNNER_NAME}" \
-e KC_CODEFLOW_RUNNER_LABELS="${KC_CODEFLOW_RUNNER_LABELS}" \
-e KC_CODEFLOW_RUNNER_EPHEMERAL="${KC_CODEFLOW_RUNNER_EPHEMERAL}" \
--name codeflow_runner \
${RUNNER_IMAGE_URL}항목 설명 RUNNER_IMAGE_URL🖌︎ 러너 이미지 URL
- 제공된 값을 사용하며, 환경에 따라 변경될 수 있습니다.
러너 목록 조회
리포지토리 상세 화면의 액션 설정 탭에서 해당 리포지토리에 연결된 러너 목록을 확인할 수 있습니다.
| 구분 | 설명 |
|---|---|
| 이름 | 러너 이름 |
| 상태 | 러너 실행 상태 - Idle: 워크플로우 실행 대기 중 - Active: 워크플로우 작업 실행 중 - Offline: 러너가 실행 중이지 않거나 연결이 끊어진 상태 |
| 태그 수 | 러너에 설정된 태그 개수. 클릭 시 태그 목록 조회 |
| 생성 일시 | 러너가 처음 생성된 날짜와 시간 |
| 더보기 버튼 | 러너 삭제 |
변수 관리
리포지토리 변수는 워크플로우에서 반복적으로 사용하는 값을 미리 정의하여 재사용할 수 있도록 하는 설정입니다.
리포지토리 상세 화면의 액션 설정 탭에서 리포지토리 변수 목록을 확인하고, 리포지토리 변수를 생성·수정·삭제할 수 있습니다.
| 구분 | 설명 |
|---|---|
| 키 | 리포지토리 변수를 식별하기 위한 고유 이름 |
| 값 | 워크플로우에서 사용되는 리포지토리 변수 값 |