CircleCI 2.1 Orb를 이용한 Shallow Clone 체크아웃으로 체크아웃 가속화
4447 단어 CircleCI
소개
CircleCI 2.1에서는 Orb이라는 새로운 기능을 사용할 수 있습니다.
Orb는 타사 패키지로, CircleCI Orb Registry에 게시된 Orb를 가져와서 config.yaml
를 작성할 수 있습니다. 1
이 CircleCI Orb Registry에 ganta/git이라는 Orb가 공개되어 있으며, 이 Orb를 이용하는 것으로 Shallow Clone 체크아웃을 할 수 있게 됩니다.
이번에는이 ganta/git을 이용한 Shallow Clone 체크 아웃을 시도했습니다.
또, 보통 체크 아웃했을 경우 및 CircleCI 2.0의 소스 캐쉬를 사용했을 경우와 속도를 비교해 보았습니다.
검증에 사용한 리포지토리
팩 파일의 크기가 2.5GiB인 리포지토리를 사용해 검증했습니다.
$ git gc
$ git count-objects -vH
count: 378
size: 1.69 MiB
in-pack: 488802
packs: 1
size-pack: 2.50 GiB
prune-packable: 0
garbage: 0
size-garbage: 0 bytes
정상적으로 체크아웃한 경우
우선은, 보통으로 체크아웃한 경우입니다.
config.yamljobs:
build:
steps:
- checkout
정상적으로 체크아웃하면 체크아웃에 1분 10초가 걸렸습니다.
CircleCI 2.0 소스 캐시를 사용하는 경우
다음으로 CircleCI 2.0의 소스 캐시을 사용한 경우입니다.
config.yamlversion: 2.0
jobs:
build:
steps:
- restore_cache:
keys:
- source-v1-{{ .Branch }}-{{ .Revision }}
- source-v1-{{ .Branch }}-
- source-v1-
- checkout
- save_cache:
key: source-v1-{{ .Branch }}-{{ .Revision }}
paths:
- ".git"
소스 캐시를 사용한 경우 체크아웃은 8초 만에 완료되지만 캐시 복원에는 35초, 캐시 저장에 1분 3초가 걸리며 총 1분 46 초와 반대로 느려져 버렸습니다.
CircleCI 2.1의 Orb를 이용하여 Shallow Clone 체크아웃한 경우
마지막으로 CircleCI 2.1의 Orb를 사용하여 Shallow Clone 체크 아웃 한 경우입니다.
config.yamlversion: 2.1
orbs:
ganta-git: ganta/[email protected]
jobs:
build:
steps:
- ganta-git/shallow-clone-checkout
Orb를 사용하여 Shallow Clone 체크아웃하면 체크아웃이 33초 내에 완료됩니다.
요약
CircleCI 2.1은 좋습니다.
직접 Orb를 만들어 공개할 수도 있습니다. ↩
Reference
이 문제에 관하여(CircleCI 2.1 Orb를 이용한 Shallow Clone 체크아웃으로 체크아웃 가속화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ngmy/items/9c27b09ecc58cfe8ea18
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
팩 파일의 크기가 2.5GiB인 리포지토리를 사용해 검증했습니다.
$ git gc
$ git count-objects -vH
count: 378
size: 1.69 MiB
in-pack: 488802
packs: 1
size-pack: 2.50 GiB
prune-packable: 0
garbage: 0
size-garbage: 0 bytes
정상적으로 체크아웃한 경우
우선은, 보통으로 체크아웃한 경우입니다.
config.yamljobs:
build:
steps:
- checkout
정상적으로 체크아웃하면 체크아웃에 1분 10초가 걸렸습니다.
CircleCI 2.0 소스 캐시를 사용하는 경우
다음으로 CircleCI 2.0의 소스 캐시을 사용한 경우입니다.
config.yamlversion: 2.0
jobs:
build:
steps:
- restore_cache:
keys:
- source-v1-{{ .Branch }}-{{ .Revision }}
- source-v1-{{ .Branch }}-
- source-v1-
- checkout
- save_cache:
key: source-v1-{{ .Branch }}-{{ .Revision }}
paths:
- ".git"
소스 캐시를 사용한 경우 체크아웃은 8초 만에 완료되지만 캐시 복원에는 35초, 캐시 저장에 1분 3초가 걸리며 총 1분 46 초와 반대로 느려져 버렸습니다.
CircleCI 2.1의 Orb를 이용하여 Shallow Clone 체크아웃한 경우
마지막으로 CircleCI 2.1의 Orb를 사용하여 Shallow Clone 체크 아웃 한 경우입니다.
config.yamlversion: 2.1
orbs:
ganta-git: ganta/[email protected]
jobs:
build:
steps:
- ganta-git/shallow-clone-checkout
Orb를 사용하여 Shallow Clone 체크아웃하면 체크아웃이 33초 내에 완료됩니다.
요약
CircleCI 2.1은 좋습니다.
직접 Orb를 만들어 공개할 수도 있습니다. ↩
Reference
이 문제에 관하여(CircleCI 2.1 Orb를 이용한 Shallow Clone 체크아웃으로 체크아웃 가속화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ngmy/items/9c27b09ecc58cfe8ea18
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
jobs:
build:
steps:
- checkout
다음으로 CircleCI 2.0의 소스 캐시을 사용한 경우입니다.
config.yaml
version: 2.0
jobs:
build:
steps:
- restore_cache:
keys:
- source-v1-{{ .Branch }}-{{ .Revision }}
- source-v1-{{ .Branch }}-
- source-v1-
- checkout
- save_cache:
key: source-v1-{{ .Branch }}-{{ .Revision }}
paths:
- ".git"
소스 캐시를 사용한 경우 체크아웃은 8초 만에 완료되지만 캐시 복원에는 35초, 캐시 저장에 1분 3초가 걸리며 총 1분 46 초와 반대로 느려져 버렸습니다.
CircleCI 2.1의 Orb를 이용하여 Shallow Clone 체크아웃한 경우
마지막으로 CircleCI 2.1의 Orb를 사용하여 Shallow Clone 체크 아웃 한 경우입니다.
config.yamlversion: 2.1
orbs:
ganta-git: ganta/[email protected]
jobs:
build:
steps:
- ganta-git/shallow-clone-checkout
Orb를 사용하여 Shallow Clone 체크아웃하면 체크아웃이 33초 내에 완료됩니다.
요약
CircleCI 2.1은 좋습니다.
직접 Orb를 만들어 공개할 수도 있습니다. ↩
Reference
이 문제에 관하여(CircleCI 2.1 Orb를 이용한 Shallow Clone 체크아웃으로 체크아웃 가속화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ngmy/items/9c27b09ecc58cfe8ea18
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
version: 2.1
orbs:
ganta-git: ganta/[email protected]
jobs:
build:
steps:
- ganta-git/shallow-clone-checkout
CircleCI 2.1은 좋습니다.
직접 Orb를 만들어 공개할 수도 있습니다. ↩
Reference
이 문제에 관하여(CircleCI 2.1 Orb를 이용한 Shallow Clone 체크아웃으로 체크아웃 가속화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ngmy/items/9c27b09ecc58cfe8ea18텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)