InfoGrab Docs

`needs`로 잡을 더 빨리 시작하기

`needs`로 잡을 더 빨리 시작하기에 대해 설명합니다.

needs 키워드를 사용하여 pipeline의 잡 의존성을 지정합니다. 잡은 의존성이 완료되는 즉시 시작되며, pipeline 스테이지에 관계없이 실행됩니다. 이를 통해 잡을 더 일찍 실행하고 불필요한 대기를 방지할 수 있습니다. 사용 사례: 모노레포: 병렬 실행 경로로 독립적인 서비스를 빌드하고 테스트합니다. 멀티 플랫폼 빌드: 모든 빌드 완료를 기다리지 않고 다른 플랫폼용으로 컴파일합니다. 빠른 피드백: 테스트 결과와 오류를 더 일찍 확인합니다. Note needs: project 및 needs: pipeline 키워드는 잡 의존성 지정에 사용되지 않습니다. 다른 pipeline에서 아티팩트를 가져오려면 needs: project 를 사용하세요. 업스트림 pipeline의 상태를 미러링하려면 needs: pipeline 을 사용하세요. needs 동작 방식 # 기본적으로 잡은 스테이지 순서대로 실행됩니다. 잡은 이전 스테이지의 모든 잡이 완료될 때까지 기다립니다. needs 를 사용하면 잡이 의존하는 정확한 잡을 지정합니다. 이전 스테이지의 다른 잡이 여전히 실행 중이더라도 해당 의존성이 완료되면 즉시 잡이 시작됩니다. 이를 통해 방향성 비순환 그래프(DAG) 방식의 pipeline을 만들 수 있습니다. 동일한 pipeline에서 스테이지 기반 잡과 needs 의존성 잡을 혼합할 수 있습니다. 또한 needs: [] 를 사용하면 이전 잡이나 스테이지 완료를 기다리지 않고 즉시 실행되는 잡을 설정할 수 있습니다. 소스 코드를 바로 실행할 수 있고 빌드 결과에 의존하지 않는 린트 잡이나 스캐너를 즉시 실행할 때 흔히 사용합니다. needs와 스테이지만 사용하는 잡 비교 # needs 사용의 이점을 보여주기 위해 6개의 잡이 있는 pipeline을 구성하는 두 가지 방법을 비교합니다. 이 pipeline은 스테이지로 구성된 6개의 잡을 가집니다. needs 없이는 일부 잡이 독립적이더라도 스테이지의 모든 잡이 완료될 때까지 다음 스테이지가 시작되지 않습니다: stages: - build - test - deploy build_app_A: stage: build script: echo "Building A..." build_app_B: stage: build script: echo "Building B..." test_app_A: stage: test script: echo "Testing A..." test_app_B: stage: test script: echo "Testing B..." deploy_app_A: stage: deploy script: echo "Deploying A..." deploy_app_B: stage: deploy script: echo "Deploying B..." 이 예시에서 build 스테이지의 모든 잡이 완료될 때까지 테스트 또는 배포 잡이 실행되지 않습니다. A 잡들이 오래 걸리면 A 잡 완료를 기다리는 동안 B 테스트 및 배포 잡이 지연될 수 있습니다. needs 를 사용하면 두 개의 독립적인 실행 경