2017-10-25 24 views
0

Jenkins 빌드에서 저장소의 일부가 변경되지 않은 경우 일부 테스트를 건너 뛰고 싶습니다. 이렇게하면 빌드 프로세스에 많은 시간을 절약 할 수 있습니다. 다음은 내 dev 컴퓨터에서 할 수있는 방법입니다.Jenkins 빌드에서 repo의 일부가 변경되지 않았는지 확인하십시오.

changes=$(git log --name-only --pretty="" my_branch..HEAD | grep path/to/folder) 
if [[ -z $changes ]]; then 
    echo "no changes detected, skipping tests" 
    exit 0 
fi 
echo "running tests!" 

젠킨스 컴퓨터에서 어떻게합니까?

git plugin for Jenkins을 사용하고 있는데 내 지점 이름을 $GIT_BRANCH으로 지정할 수는 있지만 내 빌드에서 파일 변경 목록을 가져 오는 방법을 알지 못합니다.

+0

젠킨스에서 파이프 라인이나 프리 스타일 직업을 사용하고 있습니까? –

+0

@RobHales 자유형 직업입니다. – sakovias

+1

방금 ​​쉘 스크립트보다 나은 다른 옵션을 발견했습니다. 나는 내 대답을 편집했다. –

답변

1

Freestyle 작업에서는 조건부 빌드 단계 플러그인을 사용해야 할 것입니다. 나는 조건의 하나로 쉘 스크립트를 실행할 수 있다고 생각하지 않지만 붙여 넣은 쉘 스크립트를 실행하기 위해 한 단계 만 실행하고 테스트를 실행해야한다면 (또는해서는 안되는) 파일을 건드려 야합니다. 그런 다음 조건부 작성 단계를 사용하여 해당 파일을 찾고 올바른 작업을 수행하십시오.

또한 git 플러그인의 추가 동작 중 하나가 이라는 것을 알고 있습니다. 폴링은 특정 경로의 커밋을 무시합니다.. 이를 통해 포함 또는 제외를 지정할 수 있습니다. "Includes"를 지정하면 해당 파일 이외의 파일을 수정해도 작업이 빌드를 트리거하지 않습니다. 그런 다음 쉘 스크립트가 필요 없으며 변경을 확인하기 위해 실행 프로그램을 사용하지 않아도됩니다.

+0

Conditional BuildStep Plugin이 꼭 필요한 것 같습니다. 코드 경로가 변경되지 않은 경우 전체 빌드를 건너 뛰어도 큰 도움이됩니다. – sakovias