[travis-ci] 커밋을 푸시하지 않고 Travis-CI 재 구축을 트리거 하시겠습니까?

Travis-CI를 사용하면 GitHub에 새로운 커밋을 푸시하지 않고도 재 구축을 시작할 수 있습니까?

사용 사례 : 외부 성으로 인해 빌드가 실패합니다. 소스는 실제로 정확합니다. 단순히 다시 실행하면 OK를 빌드하고 전달합니다.

예를 들어, apt-get패키지 서버가 다운되어 장애가 발생했지만 서버가 다시 백업됩니다. 그러나 새 커밋이 푸시 될 때까지 “실패”상태에서 빌드 상태가 “고정되었습니다”.

“더미”커밋을 푸시하는 것 외에 Travis-CI가 다른 빌드를 수행하도록하는 방법이 있습니까?



답변

  • repo에 대한 쓰기 액세스 권한이있는 경우 : 빌드의 세부 사항 화면에 Build 빌드 다시 시작 단추가 있습니다. 또한 “추가 옵션”아래에 트리거 빌드 메뉴 항목이 있습니다.

    참고 : Ghostery와 같은 브라우저 확장 프로그램으로 인해 재시작 버튼이 표시되지 않을 수 있습니다. 확장 또는 화이트리스트 트래비스 CI를 비활성화하십시오.

    참고 2 : .travis.yml업스트림에서 구성이 변경된 경우 다시 작성 버튼을 클릭하면 이전 구성으로 트래비스가 실행됩니다. 트래비스 구성에 업스트림 변경 사항을 적용하려면 PR에 커밋을 추가하거나 닫거나 다시 열어야합니다.

  • 풀 요청을 보낸 경우 : PR을 닫았다가 다시 열 수 있습니다 . 새로운 빌드가 시작됩니다.

빌드를 다시 시작하십시오.

빌드 스크린 샷 재시작

트리거 빌드 :

트리거 빌드 스크린 샷


답변

당신이 열 경우 설정 GitHub의에서 저장소에 대한 탭을 클릭 통합 및 서비스 찾을 트래비스 CI를 클릭 편집을 당신이 볼 수, 시험 서비스 버튼을 누릅니다. 빌드가 시작됩니다.


답변

커밋을 푸시하지 않고 말했지만 마스터 이외의 지점에서 작업하는 경우 빈 커밋을 커밋하는 것이 편리한 방법입니다.

git commit --allow-empty -m "Trigger"

결국 rebase하고 빈 커밋을 제거 / 제거하고 모든 자식 후크에서 작동합니다 🙂


답변

CI 빌드 및 기타 트리거를 다시 실행하는 다른 방법을 찾았습니다.

  1. git commit --amend --no-edit변경하지 않고 실행하십시오 . 현재 분기의 마지막 커밋을 다시 만듭니다.
  2. git push --force-with-lease origin pr-branch.

답변

Travis에 로그인하고 빌드 페이지로 이동하십시오. 오른쪽 상단의 톱니 바퀴 아이콘 옆에 ‘빌드 다시 시작’버튼이 표시됩니다.

스크린

참고 :이 작업을 수행하려면 연결된 GitHub 저장소에 대한 쓰기 권한이 있어야합니다.


답변

GitHub에 .travis.yml을 가지고 있지만 테스트 된 적이없는 새 프로젝트가있는 경우 다음과 같이 커밋하지 않고 테스트를 실행할 수 있습니다.

  1. Travis CI 설정에서 테스트 가능
  2. GitHub에서 프로젝트 페이지 열기
  3. 설정 열기-> 웹 후크 및 서비스
  4. 서비스에서 Travis CI를 찾아 편집 버튼을 누릅니다
  5. “테스트 서비스”를 누르십시오

답변

Travis CLI를 사용하여이 작업을 수행 할 수 있습니다 . 으로 문서에 설명 , 먼저는 CLI 도구를 설치 :

travis login --org --auto
travis token

이 토큰 TRAVIS_TOKEN을 보관하는 파일이 공용으로 버전 제어되지 않는 한이 변수를 환경 변수에 보관할 수 있습니다 .

이 함수를 사용하여 트리거를 제출합니다.

function travis_trigger() {
     local org=$1 && shift
     local repo=$1 && shift
     local branch=${1:-master} && shift

     body="{
             \"request\": {
               \"branch\": \"${branch}\"
              }
           }"

     curl -s -X POST \
          -H "Content-Type: application/json" \
          -H "Accept: application/json" \
          -H "Travis-API-Version: 3" \
          -H "Authorization: token $TRAVIS_TOKEN" \
          -d "$body" \
          "https://api.travis-ci.org/repo/${org}%2F${repo}/requests"
 }