일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- FP 특징
- 항해99 미니프로젝트
- js배열 알고리즘
- JS module system
- 알고리즘
- 항해99 사전스터디
- 함수형 프로그래밍 특징
- v8 원리
- 리액트 메모
- 렌더링 최적화
- 리액트 메모이제이션
- 리덕스
- 웹 크롤링
- 리액트 렌더링 최적화
- chromatic error
- 항해99
- this
- 실행컨텍스트
- toggle-btn
- 웹팩 기본개념
- 코어자바스크립트
- 리액트
- 항해99 부트캠프
- 테스트 코드 툴 비교
- Js module
- next js
- 자바스크립트 엔진 v8
- 타입스크립트
- jwt
- gql restapi 차이
- Today
- Total
Jaeilit
스토리북 chromatic action error 본문
1. 현상
스토리북 크로마틱 ci cd 를 사용하려고 문서를 보고 따라했는데 깃 액션에서 에러가 발생했다.
https://storybook.js.org/tutorials/intro-to-storybook/react/ko/deploy/
에러 내용
non-zero exit code
액션에서 정의해놓은 에러이외로 예기치않게 프로세스가 종료됬다는 의미이다.
2. 원인
자세히보면 Run yarn 이 보인다. 빌드를 하기 위해 yarn 패키지를 설치하는건데
이미 프로덕트에는 pnpm 을 사용하고있고 액션에서 yarn 을 패키지 매니저로 사용한다고해도 yarn.lcok 파일이 없기 때문에 에러가 날수 밖에 없다. npm 을 사용한다하더라도 마찬가지로 package.lock.json 이 없으니 똑같이 에러가 날 것이다.
3. 시도
pnpm install 하여 pnpm 을 패키지 매니저로 사용하게끔 설치해주었다.
그러나 보기와 같이 pnpm command not found 에러를 냈는데
pnpm 이 없다는 이야기이다.
pnpm install 로 설치할게요 -> pnpm 명령어가 없는데..??
pnpm 자체가 설치가 안되서 pnpm cli 을 사용못한다는 뜻,
4. 해결
해결 방법은 pnpm 을 설치해주면 된다.
https://github.com/pnpm/action-setup/tree/v3/
pnpm 을 설치해주는 action 이 있다.
문서대로 그냥 pnpm 을 사용해도 되지만 마지막 단락에 캐시사용하는 코드에서 노드는 사용하지 않으므로 제거하고 사용했다.
on:
- push
- pull_request
jobs:
cache-and-install:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: pnpm/action-setup@v3
name: Install pnpm
with:
version: 8
run_install: false
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
캐시사용하는 액션 with 부분을 보면 대충 pnpm lcok 파일을 변경을 감지해서 캐시사용 유무를 정하는듯하다.
5. 전체코드
# Workflow name
name: "Chromatic Deployment"
# Event for the workflow
on: push
# List of jobs
jobs:
chromatic:
# Operating System
runs-on: ubuntu-latest
# Job steps
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: pnpm/action-setup@v3
name: Install pnpm
with:
version: 8
run_install: false
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install Dependencies
run: pnpm install
- name: Publish to Chromatic
uses: chromaui/action@latest
with:
#👇 Chromatic projectToken, see https://storybook.js.org/tutorials/intro-to-storybook/react/ko/deploy/ to obtain it
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
zip: true
'TIL' 카테고리의 다른 글
렌더링과 리렌더링 최적화(메모이제이션) (0) | 2024.05.02 |
---|---|
Graphql 과 RESTful API 차이점 (0) | 2024.04.11 |
자바스크립트의 비동기 프로그래밍 Promise (0) | 2023.11.16 |
자바스크립트 V8 엔진 (1) | 2023.10.26 |
번들러 웹팩 (0) | 2023.09.07 |