AWS CodeBuild에서 yarn을 사용할 수 있음
하고 싶은 일
다음 두 가지를 알고 싶었다.
로컬 개발에 yarn을 사용하고 있기 때문에 CodeBuild에서도 yarn을 사용하고 싶었습니다.
결론
측정한 시간은 다음과 같습니다.
패키지 설치를 한 번만 실행한 경우
BuildProject 전체
BUILD Phase
yarn의 install
install
yarn
2min21sec
1min03sec
14초
40초
npm
2min22sec
1min04sec
-
50초
패키지 설치를 세 번 실행한 경우
BuildProject 전체
BUILD Phase
yarn의 install
install 1
install 2
install 3
yarn
3min12sec
1min52sec
15초
47sec
22sec
15초
npm
3min19sec
2min12sec
-
47sec
39sec
40초
yarn은 사용할 수 있다(조건 있음)
공식에 따르면
npm install -g yarn
는 추천 할 수 없다는 것입니다.Note: Installation via npm is generally not recommended. npm is non-deterministic, packages are not signed, and npm does not perform any integrity checks other than a basic SHA1 hash, which is a security risk when installing system.
For these reasons, it is highly recommended that you install Yarn through the installation method best suited to your operating system.
htps : // 또는 rn pkg. 코 m / ぁ g / 엥 / ㅇ cs / ㄱ s 탓 l / #
공식 절차에 따라
apt-get
에서 패키지를 설치하려고했지만,sudo apt-get update
에 이런 에러가 나거나E: The method driver /usr/lib/apt/methods/https could not be found.
apt-transport-https
이런 오류가 발생하거나E: Unable to locate package apt-transport-https
그래서 포기했습니다. . . .
실험 방법
이 리포지토리에서 clone 한 것을 사용합니다.
디렉토리 구성은 다음과 같습니다.
+---npm
| | buildspec.yml
| |
| +---app1
| | package.json
| | yarn.lock
| |
| +---app2
| | package.json
| | yarn.lock
| |
| \---app3
| package.json
| yarn.lock
|
\---yarn
| buildspec.yml
|
+---app1
| package.json
| yarn.lock
|
+---app2
| package.json
| yarn.lock
|
\---app3
package.json
yarn.lock
"npm"디렉토리와 "yarn"디렉토리에서 각각 zip 아카이브를 만들고,
CodeBuild 프로젝트의 소스라고 가정합니다. 각 "appX"디렉토리의 내용은 모두 동일합니다.
buildspec.yml 확인
각각의 디렉토리 바로 아래(zip 아카이브의 루트가 됩니다)에 있는 buildspec.yml가 아래와 같이 되어 있어 CodeBuild상에서 실행되는 yarn과 npm을 구분하고 있습니다.
yarn/buildspec.ymlversion: 0.1
phases:
install:
commands:
- echo Nothing to do in the install phase...
pre_build:
commands:
- echo Nothing to do in the pre_build phase...
build:
commands:
- echo Build started on `date`
- npm -v
- node -v
- npm install -g yarn
- yarn --version
- cd app1 && yarn
- cd app2 && yarn
- cd app3 && yarn
post_build:
commands:
- echo Build completed on `date`
npm/buildspec.ymlversion: 0.1
phases:
install:
commands:
- echo Nothing to do in the install phase...
pre_build:
commands:
- echo Nothing to do in the pre_build phase...
build:
commands:
- echo Build started on `date`
- npm -v
- node -v
- cd app1 && npm install
- cd app2 && npm install
- cd app3 && npm install
post_build:
commands:
- echo Build completed on `date`
zip 아카이브 만들기
zip 내용이 다음과 같이 되도록 yarn.zip 및 npm.zip을 만듭니다.
npm.zip
| buildspec.yml
|
\---app1
| package.json
| yarn.lock
\---app1
| package.json
| yarn.lock
\---app1
package.json
yarn.lock
S3 버킷에 업로드
만든 두 개의 zip을 모든 S3 버킷에 업로드합니다.
새 버킷을 만들고 루트에 zip 파일을 넣었습니다.
CodeBuild로 프로젝트 만들기
다음 내용으로 CodeBuild 프로젝트를 만듭니다.
이것은 npm.zip에서 실행되는 분입니다. 같은 내용으로 "S3 Object key"에 "yarn.zip"을 지정한 CodeBuild 프로젝트도 작성합니다.
빌드 시작
각 프로젝트를 시작합니다.
상황은 Build history 페이지에서 확인할 수 있습니다.
"Output: Logs"에서 CloudWatch Logs에 기록된 로그를 볼 수 있습니다.
이번에는 CodeBuild 프로젝트의 설정에서 Artifact(아티팩트) 없음의 설정으로 했으므로, 실행이 완료해도 로그 이외는 아무것도 남지 않습니다.
요약
결론은 먼저 썼지만 yarn을 사용할 수있었습니다.
yarn을 신규로 인스톨 하는 오버헤드가 얼마나 있을지도 신경이 쓰였지만,
실은 그다지 걸리지 않고, 토탈에서는 yarn의 실행 속도의 메리트를 낼 수 있다고 생각합니다.
그럼!
Reference
이 문제에 관하여(AWS CodeBuild에서 yarn을 사용할 수 있음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/monamu/items/398c10698d3c0c2841d5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
+---npm
| | buildspec.yml
| |
| +---app1
| | package.json
| | yarn.lock
| |
| +---app2
| | package.json
| | yarn.lock
| |
| \---app3
| package.json
| yarn.lock
|
\---yarn
| buildspec.yml
|
+---app1
| package.json
| yarn.lock
|
+---app2
| package.json
| yarn.lock
|
\---app3
package.json
yarn.lock
version: 0.1
phases:
install:
commands:
- echo Nothing to do in the install phase...
pre_build:
commands:
- echo Nothing to do in the pre_build phase...
build:
commands:
- echo Build started on `date`
- npm -v
- node -v
- npm install -g yarn
- yarn --version
- cd app1 && yarn
- cd app2 && yarn
- cd app3 && yarn
post_build:
commands:
- echo Build completed on `date`
version: 0.1
phases:
install:
commands:
- echo Nothing to do in the install phase...
pre_build:
commands:
- echo Nothing to do in the pre_build phase...
build:
commands:
- echo Build started on `date`
- npm -v
- node -v
- cd app1 && npm install
- cd app2 && npm install
- cd app3 && npm install
post_build:
commands:
- echo Build completed on `date`
npm.zip
| buildspec.yml
|
\---app1
| package.json
| yarn.lock
\---app1
| package.json
| yarn.lock
\---app1
package.json
yarn.lock
결론은 먼저 썼지만 yarn을 사용할 수있었습니다.
yarn을 신규로 인스톨 하는 오버헤드가 얼마나 있을지도 신경이 쓰였지만,
실은 그다지 걸리지 않고, 토탈에서는 yarn의 실행 속도의 메리트를 낼 수 있다고 생각합니다.
그럼!
Reference
이 문제에 관하여(AWS CodeBuild에서 yarn을 사용할 수 있음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/monamu/items/398c10698d3c0c2841d5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)