2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

서클CI에서 사용하는 YML 파일의 구조는?

_____
서클CI YML 파일 구조 FAQ

Q1: 서클CI YML 파일의 기본 목적은 무엇인가요?
A1: 서클CI YML 파일은 프로젝트 빌드, 테스트, 배포 작업을 자동화하는 워크플로우를 정의하는 설정 파일입니다.

Q2: 서클CI YML 파일의 최상위 주요 키(key)들은 어떤 것들이 있나요?
A2: 주요 키는 다음과 같습니다.
- `version`: 서클CI 설정의 버전 (현재 대부분 2.1 사용)
- `jobs`: 실행 가능한 일련의 작업 단위를 정의
- `workflows`: 작업들이 실행되는 순서와 조건 정의
- `executors`: 반복되는 실행 환경을 정의 (옵션)
- `commands`: 재사용 가능한 커맨드 집합 정의 (옵션)

Q3: `version` 키의 역할은 무엇인가요?
A3: 설정 파일 구문과 기능에 대한 버전을 지정합니다. 예) `version: 2.1`로 설정하면 서클CI 2.1 기능을 사용 가능.

Q4: `jobs` 키 아래에는 무엇을 정의하나요?
A4: `jobs`에는 하나 이상의 작업(job)을 정의합니다. 각 job은 도커 이미지, VM, macOS, Windows 환경에서 실행되며, 여러 개의 `steps`(빌드, 테스트, 커맨드 실행 단계)를 포함합니다.

Q5: `jobs` 내의 주요 속성들은 어떤 것이 있나요?
A5:
- `docker`, `machine`, `macos`: 실행 환경 선택
- `working_directory`: 기본 작업 경로
- `steps`: 순서대로 실행할 명령, 서클CI 내장 커맨드, 셸 커맨드 등을 나열한 리스트

Q6: `steps`는 어떻게 구성되나요?
A6: `steps`는 배열로 여러 단계를 포함하며, 보통 다음 항목들을 포함:
- `checkout`: 코드 저장소 클론
- `run`: 쉘 명령 실행
- `setup_remote_docker`: 도커 빌드를 위한 환경 설정
- 사용자 정의 커맨드 호출, 캐시 저장 및 복원 등

Q7: `workflows`는 어떤 역할을 하나요?
A7: 여러 job의 실행 순서, 평행 실행 여부, 조건부 실행 등을 정의합니다. 워크플로우 이름 하위에 `jobs` 리스트를 명시하며, 의존관계 설정이 가능합니다.

Q8: `workflows` 내 jobs 배열에서 어떤 옵션을 줄 수 있나요?
A8: 단순 job명 나열 외에:
- `requires`: 선행 job 지정 (디펜던시)
- `filters`: 브랜치 또는 태그 필터링
- `context`: 환경 변수 세트 참조 등

Q9: `executors`는 무엇인가요?
A9: 반복되는 실행 환경을 미리 정의해서 여러 job 간 재사용을 쉽게 하는 추상화 개념입니다.
예) 동일한 도커 이미지와 리소스 설정을 여러 job에서 공유

Q10: `commands`는 어떤 경우에 활용하나요?
A10: 여러 job에 중복되는 커맨드들의 집합을 정의해 재사용할 때 사용합니다.

Q11: 간단한 서클CI YML 파일 예시는?
```yaml
version: 2.1

jobs:
build:
docker:
- image: cimg/python:3.8
steps:
- checkout
- run:
name: Install dependencies
command: pip install -r requirements.txt
- run:
name: Run tests
command: pytest

workflows:
build_and_test:
jobs:
- build
```

Q12: YML 파일 작성 시 유의사항은?
A12:
- 들여쓰기(스페이스 활용) 정확히 지킬 것
- 각 항목은 하위 구조에 따라 띄어쓰기, 콜론(:), 대시(-) 위치 엄수
- 도커 이미지나 환경 설정에 맞춰 적절한 키값 선택
- 워크플로우 의존성 및 필터 조건 정확히 매칭

---

요약하면, 서클CI YML은 `version`, `jobs`, `workflows`를 중심으로 `executors`, `commands`를 보조적으로 활용해 자동화 빌드 과정을 정의하는 구조입니다.
CircleCI에서 사용하는 YAML 파일의 구조는 `config.yml`이라는 이름으로 `.circleci` 디렉토리에 위치해야 합니다.

이 파일은 CI/CD 파이프라인의 작업, 작업 순서, 테스트 및 배포 프로세스를 정의하는 데 사용됩니다.

기본적인 `config.yml` 파일의 구조는 다음과 같습니다: ```yaml version:

2.1 CircleCI의 버전 jobs: 작업 정의 build: 작업 이름 docker: 사용할 Docker 이미지 - image: circleci/python:3.7 Docker 이미지 steps: 실행할 단계 - checkout 소스 코드 체크아웃 - run: name: Install dependencies 단계 이름 command: pip install -r requirements.txt 실행할 명령 - run: name: Run tests command: pytest 테스트 실행 workflows: 워크플로 정의 version: 2 build_and_test: 워크플로 이름 jobs: - build 앞서 정의한 작업 호출 ``` 구성 요소 설명 1. version : CircleCI 구성 파일의 버전을 정의합니다.

현재 사용 가능한 주요 버전은

2.x입니다.



2. jobs : CI/CD 프로세스에서 실행할 개별 작업을 정의하는 섹션입니다.

각 작업은 Docker 환경에서 실행될 수 있으며, 여러 단계를 포함할 수 있습니다.



3. steps : 각 작업 내에서 실행할 명령이나 작업의 순서를 정의합니다.

여기에는 `checkout`, `run`, `persist_to_workspace`, `attach_workspace` 등의 단계가 포함될 수 있습니다.



4. workflows : 여러 작업을 조합하여 실행할 수 있는 방식입니다.

워크플로는 작업 간의 의존성을 관리할 수 있도록 해줍니다.

예를 들어, 한 작업이 끝난 후에만 다음 작업을 실행하도록 설정할 수 있습니다.

예제 코드 설명 위의 예에서는 Python 애플리케이션을 위한 간단한 CircleCI 구성 파일을 보여줍니다.

`build`라는 작업을 정의하고, Docker 이미지를 사용하여 소스 코드를 체크아웃한 후 의존성을 설치하고 테스트를 실행합니다.

`workflows`에서 `build_and_test`라는 이름으로 이 작업을 호출하여 전체 프로세스를 정의합니다.

이 구조를 바탕으로 다양한 배포 전략이나 테스트 환경 설정, 환경 변수 설정 등을 추가할 수 있습니다.

작성자: 정서영 [비회원] | 작성일자: 1년 전 2025-03-22 03:01:40
조회수: 157 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.