2014-07-05 1 views
16

빌드 이슈 또는 게시자로서 빌드 이얼로서 Github Release으로 빌드 아티팩트를 업로드하는 방법을 찾고 있습니다 - Publish Over과 유사합니다.Jenkins에서 빌드 아티팩트를 Github로 업로드하십시오.

Jenkins 용 Github 플러그인 (JENKINS-18598)에서는 아직 지원되지 않습니다.

나는 postbuild-task 플러그인을 조사해 왔지만 환경 변수를 지원하지 않는 것 같습니다. (빌드 출력에 내 API 토큰을 로깅하는 것을 방지하는 데 도움이된다고 가정합니다).

아무에게도 아직이 작업을 수행 했습니까? 젠킨스와 함께 이것을 해결하는 좋은 방법은 무엇입니까? cURL 또는 CLI 클라이언트를 통해 업로드 (예 : 이동 기반 github-release).

답변

7

나는 당신이 궤도에 있다고 생각합니다!

  1. 는 젠킨스에 포스트 빌드 작업 플러그인을 추가
  2. 내가 릴리스 이름 젠킨스 매개 변수를 만들 것입니다 옵션
  3. , 태그 이름 등을 것이다 '이전의 모든 단계를 성공한 경우에만 실행 스크립트를'사용 빌드 프로세스의 마지막 단계 (사후 빌드 작업 실행 전)로 자격 증명과 함께 파일을 파일에 저장하십시오.
  4. 가 저장된 파일에서 환경 변수를 설정하고 당신은 Jenkings 그루비 포스트 빌드 플러그인을 사용할 수 있습니다 (https://developer.github.com/v3/repos/releases/#create-a-release을 위해 그것을
  5. CURL 게시물을 삭제 :
  6. 는 Github에서 API를 호출 포스트 빌드 작업 단계에 짧은 스크립트를 추가합니다 . https://developer.github.com/v3/repos/releases/#upload-a-release-asset
: 대신 포스트 빌드 작업 플러그인과 파일로 저장하지만, 그 플러그인을 사용 가치가 없어 너무 많은 복잡성을 추가하지 않고 환경 변수에 액세스)
  • CURL POST는 이슈를 업로드
  • +0

    감사를 무엇 나는 대부분 마음에 뒀다. Groovy 포스트 빌드 스크립트 ([HTTPBUilder] (http://groovy.codehaus.org/modules/http-builder/home.html) 사용)로 시도했지만 [실패] (http : // groovy .codehaus.org/modules/http-builder/home.html). 내가 CURL 버전을해야 할 것입니다 또한 환경 변수를 설정하려고합니다. – StephenKing

    17

    I solv github-release 도구를 사용하여 편집하십시오. 매력처럼 아주 쉽게 작동합니다.

    1. 이 코드 입력 단계 게시물 빌드에 쉘 스크립트를 추가 빌드
    2. 에 관련 매개 변수를 추가 :이이었다, 스케치에 대한
    echo "Compressing artifacts into one file" 
    zip -r artifacts.zip artifacts_folder 
    
    echo "Exporting token and enterprise api to enable github-release tool" 
    export GITHUB_TOKEN=$$$$$$$$$$$$ 
    export GITHUB_API=https://git.{your domain}.com/api/v3 # needed only for enterprise 
    
    echo "Deleting release from github before creating new one" 
    github-release delete --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${VERSION_NAME} 
    
    echo "Creating a new release in github" 
    github-release release --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${VERSION_NAME} --name "${VERSION_NAME}" 
    
    echo "Uploading the artifacts into github" 
    github-release upload --user ${GITHUB_ORGANIZATION} --repo ${GITHUB_REPO} --tag ${VERSION_NAME} --name "${PROJECT_NAME}-${VERSION_NAME}.zip" --file artifacts.zip 
    
    +0

    젠킨스 플러그인이 있어야 젠킨스 플러그인을 사용할 수 있습니다. –