작업 건너뛰기
캐싱은 작업 속도를 극적으로 높이지만 npx turbo-ignore를 사용하면 더 빠르게 진행할 수 있습니다. 워크스페이스가 코드 변경의 영향을 받지 않는 경우 작업 실행을 완전히 건너뛸 수 있습니다.
web 애플리케이션(또는 그 패키지 종속성)에 변경 사항이 없을 때 web 워크스페이스의 단위 테스트를 건너뛰고 싶다고 가정해 봅시다. Remote Caching을 이미 사용하고 있다면 캐시 히트를 얻을 가능성이 높지만 CI 컨테이너 프로비저닝, npm 종속성 설치 및 기타 시간이 걸릴 수 있는 작업에 여전히 시간을 소비하게 됩니다.
이상적으로는 그러한 작업이 처음부터 필요한지 빠르게 확인할 수 있습니다.
리포지토리를 체크아웃한 후 다른 작업을 수행하기 전에 몇 초를 들여 web 테스트가 상위 커밋 이후 변경되었는지 확인할 수 있습니다.
이 명령은 다음을 수행합니다:
web워크스페이스를 필터링합니다.- 상위 커밋과 비교하여
test작업에 대한dry출력을 생성합니다. - 출력을 파싱하여 변경된 패키지를 확인합니다.
- 변경 사항이 감지되면
1코드로 종료합니다. 그렇지 않으면0으로 종료합니다.
이 작업에 대해 >>> FULL TURBO 캐시를 히트할 수 있었지만 CI를 실행하는 데 필요한 다른 모든 설정 작업으로 시간을 절약했습니다.
turbo-ignore 사용
영향을 받지 않는 작업을 건너뛰려면 먼저 머신에서 Git 기록을 사용할 수 있는지 확인하세요. 그런 다음 npx turbo-ignore를 실행합니다.
turbo-ignore는 --filter 및 --dry=json 플래그의 조합을 사용하여 상위 커밋에서 현재 커밋까지의 변경 사항을 찾아 영향을 받는 패키지를 식별합니다. 기본적으로 turbo-ignore는 현재 작업 디렉토리의 build 작업에 대한 차이를 찾지만 플래그로 이 동작을 사용자 정의할 수 있습니다.
다음은 빌드되고 실행될 명령의 예입니다:
dry run은 build 작업을 실행하지 않습니다. 대신 코드 변경이 몇 초 안에 빌드(또는 다른 작업)에 영향을 미치는지 패키지를 확인합니다.
turbo-ignore가 작업을 건너뛸 수 있음을 발견하면 0 코드로 프로세스를 종료합니다. 변경 사항이 발견되면 프로세스는 1로 종료됩니다.
Vercel에서는 상위 커밋 대신 이전에 배포된 SHA가 사용됩니다.
동작 사용자 정의
워크스페이스를 지정하려면 다음과 같이 명령에 추가할 수 있습니다:
여기서 web은 기본 build 작업을 실행하는 워크스페이스의 이름입니다.
작업을 변경하려면 --task 플래그를 사용하여 turbo-ignore가 호출할 명령의 작업을 지정하세요.
Vercel에서 turbo-ignore 사용
Vercel에서 npx turbo-ignore를 사용하려면 Ignored Build Step 기능을 사용할 수 있습니다. Vercel은 turbo-ignore를 성공적으로 실행하기 위한 올바른 인수를 자동으로 추론합니다.
동작 사용자 정의
Vercel이 아닌 경우 --fallback 플래그를 사용하여 비교할 커밋을 지정하세요.
Vercel에서는 --fallback 플래그를 지정하여 기본 비교를 사용할 수 없을 때 비교할 git ref를 Vercel에 제공할 수 있습니다. 기본적으로 Vercel은 가장 최근에 배포된 SHA와 비교하므로 이는 브랜치의 첫 번째 커밋에 대한 배포를 피하는 것과 같은 사용 사례에 유용합니다.