Jenkins가 Git에서 가져온 스크립트를 실행하도록하려면 어떻게해야합니까?


12

Jenkins를 사용하여 일련의 가져 오기 작업을 트리거하고 관리하고 있습니다. 가져 오기 스크립트를 Github에 넣고 싶습니다. Jenkins가 작업을 빌드 할 때 (a) 버전 제어 스크립트를 Github에서 꺼내고 (b) 스크립트를 실행해야합니다.

내가 겪고있는 문제는 작업 내에서 실행할 스크립트 이름을 참조하는 방법을 모른다는 것입니다. 소스 코드가 작업 공간 디렉토리에 있다고 가정합니다. 그 가정이 맞습니까? (문서 만 있다면!)

여기까지 내가 한 일이 있습니다.

  1. 내 Windows Server에 Jenkins를 (명확하게) 설치했습니다 (아니요, 그것에 대한 선택은 없었습니다)
  2. 내 github 계정에 저장소를 만들고 코드를 넣습니다.
    • https://github.com/mcholl/SARS-Import/ 에서 공개됩니다.
    • roottest.py와 omniture-video \ test.py라는 두 개의 스크립트가 있습니다. Apple의 특허를 받고있는 코드는 확실합니다 :)
    • 아이디어는 roottest.py를 실행하고 싶다는 것입니다.
  3. Github 플러그인 설치
  4. 다음과 같이 작업을 작성했습니다.
  5. 작업을 수동으로 실행

그러나 내가 얻는 것은 파일을 찾을 수 없다는 오류 메시지입니다. 워크 플로가 "(Job) / workspace / 디렉토리에 소스의 로컬 복사본을 가져온 다음 작업 공간 디렉토리의 컨텍스트에서 배치 명령을 실행한다고 가정하기 때문에 이것은 이상합니다.

전체 콘솔 출력은 다음과 같습니다.

사용자 익명으로 시작 C : \ Program Files (x86) \ Jenkins \ jobs \ Github 통합 테스트 \ Workspace [workspace] $ cmd / c call C : \ Windows \ TEMP \ hudson1966342425043540895.bat

C : \ Program Files (x86) \ Jenkins \ jobs \ Testing Github Integration \ workspace> python roottest.py python : 'roottest.py'파일을 열 수 없습니다 : [Errno 2] 해당 파일 또는 디렉토리가 없습니다.

C : \ Program Files (x86) \ Jenkins \ jobs \ Testing Github Integration \ workspace> exit 2 빌드 단계 'Windows batch 명령 실행'빌드가 실패로 표시됨 Finished : FAILURE

분명히 나는 ​​콘솔에서 내 인쇄 진술의 결과를 볼 것으로 기대했다.

내가 엉망으로 만들었습니까? 내 스크립트가없는 이유는 무엇입니까?


C : \ Windows \ TEMP \ hudson1966342425043540895.bat에서 코드를 볼 수 있습니다 .git pull을 사용하고 있습니까?

Jenkins는 자동으로 생성하고 삭제합니다. 콘솔 출력에서 ​​전체 내용을 볼 수 있습니다. 위에서 언급 한 "python roottest.py"명령입니다
Affable Geek

roottest.py가 경로에 없습니다. 작업 공간 디렉토리에 파일이 보입니까, 아니면 자동으로 삭제 되었습니까? git pull을 실행할 때 복제 저장소의 로컬 사본에 있어야하며 새로운 변경 사항을 로컬 저장소로 가져와야합니다. 실행중인 실제 명령을 볼 수없는 경우에는 도움이되지 않습니다.

github 플러그인 wiki.jenkins-ci.org/display/JENKINS/Git+Plugin#GitPlugin-에 대해 다음 지침을 따르셨습니까 ? GIT_HOME 환경 변수 등을 설정 했습니까?

도! 창문을 싫어하는 또 하나의 이유. 감사합니다. 문제 일 수 있습니다.
Affable Geek

답변:


5

내 빌드 (리눅스 호스트)의 경우, Jenkins의 빌드 단계로 다음과 같이 새로 검사 한 작업 공간에서 빌드 스크립트를 실행합니다.

쉘 명령을 실행하십시오.

 sh -x $WORKSPACE/build/myproject.build

필자는 / 대신 \를 사용하고 스크립트를 실행하기 위해 sh 대신 python을 사용한다는 점을 제외하고는 Windows에서 비슷하게 작동한다고 가정합니다.


2

빌드에서 두 줄을 쓸 수 있습니다.

chmod 777 ./my_script.sh
./my_script.sh

1
세계 쓰기 권한이 가장 좋은 아이디어는 아닙니다! 왜 755 (소유자 쓰기, 다른 모든 사람 읽기 / 실행)
kmarsh

777은 실제로 최고의 아이디어는 아니지만이 답변이 실제로 도움이되었습니다.
Robin Dijkhof

0

test.sh와 같은 스크립트를 Git에 저장할 수 있습니다 :

#!/bin/bash
_test_func(){ 
 echo 'test'
}

그런 다음 "쉘 실행"입력에서 해당 스크립트를 가져오고 "_test_func"를 호출하십시오.

source test.sh
_test_func

결과:

 + source test.sh
 + _test_func
 test
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.