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


414

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

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

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

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

답변:


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

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

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

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

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

빌드 스크린 샷 재시작

트리거 빌드 :

트리거 빌드 스크린 샷


1
나는 다른 경우에 그것을 발견하고 사용했습니다. 그러나 나는 내가 위에서 설명한 이유로 Errored 한 경우가 있다고 맹세 할 수 있었고 기어 메뉴에는 해당 옵션이 없습니다. 아마도 그것은 일회성 우연이었을 수도 있고, 아니면 내가 잘못 생각했을 수도 있습니다. 어쨌든, 난 당신이 어떻게 대답 생각 하는데 내가 가서 접수로 답변을 표시거야, 그래서 작업에. 감사!
Greg Hendershott

3
내가 소유, 오류 또는 실패한 프로젝트의 빌드 히스토리를 보면 재시작 버튼이 있습니다
jbtule

20
난 당신이 다른 사람의 프로젝트에 대한 풀 요청을 제출할 경우 하나의 까다로운 경우가 생각, 그것은 당신의 PR 자체와 관련이없는 이유로 오류가 발생한, 당신은 알고 그냥 다시 시도를 슬쩍 찌르다 수 있다면 성공할 것입니다. 왜 당신이 할 수 없는지 (프로젝트가 아닌) 이해할 수 있습니다. 그러나 왜 당신이 원하는지 이해할 수 있습니다 (홍보가 잘못 "나빠 보인다")
Greg Hendershott

94
잊지
않으시

8
그리고 github repro에 대한 쓰기 권한이 있어야합니다. 따라서 이것은 업스트림으로 푸시 된 포크에는 적용되지 않습니다.
Izhaki

206

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


6
travis-ci가 다시 시작 버튼을 제거했다고 생각합니다. 그래서 이것이 나를 위해 일한 유일한 방법입니다. 그것은 두 가지 빌드를 수행 하지만…
Blaise

1
@Blaise 우연히 Ghostery (또는 이와 유사한)를 사용하십니까? 비활성화하십시오. 저에게는 빌드 재시작 버튼이 다시 나타납니다.
Greg Hendershott 2016 년

29
리포지토리에 대해 Travis CI 빌딩을 처음 활성화 할 때 작동합니다. 이전 빌드가없는 리포지토리에는 "빌드 다시로드"단추가 없습니다.
브라이언 J. 밀러

12
나와 같은 바보를위한 메모 : Travis의 저장소 페이지가 아닌 GithubSettings 의 저장소 에서 엽니 다 ! Service HooksTravis의 페이지에서 20 분을 찾으려고 낭비한 것을 믿을 수 없습니다 . :(
John Red

83

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

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

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


1
훌륭합니다, 감사합니다! "Trigger"커밋을 히스토리에서 더 아래로 이동하려면 리베이스해야한다고 덧붙이고 싶습니다. 그렇지 않으면 "Trigger"커밋이 제거 될 때 단순히 새 빌드를 버립니다.
pmos

63
같은 맥락에서 기존 커밋 및 강제 푸시를 수정할 수 있습니다 : git commit --amend --no-edit && git push -f
grahamrhay

4
@grahamrhay 타겟 리포지토리 소유자가 아닌 경우 PR 빌드를 트리거하는 것이 가장 좋습니다. 컨텐츠를 유지하고 병합하거나 리베이스하거나 아무것도 할 필요가 없습니다. 답을보다 눈에 띄게 올리려면 답을 만드십시오.
TWiStErRob

액세스 할 수없는 리포지토리를 분기했는데 ​​Travis에 새로 만든 포크에서 다시 시작할 수있는 빌드가 없기 때문에 이것이 저에게 효과적이었습니다.
Nick McCurdy

1
@TWiStErRob 다른 사람이 아래에 그러한 답변을 썼습니다.
Franklin Yu

30

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

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

8
나는 이것을 권장하지 않습니다. 이 커밋을 기반으로 분기가있는 사람들을 혼란스럽게 할 수 있도록 기록을 파괴적으로 수정하고 --amend플래그는 HEAD커밋을 변경하지 않을 수도 있습니다 .
Nick McCurdy

7
PR에 BUMP 웹 후크 만 필요한 드문 경우에 적합합니다. 풀-요청에서 실제로 분기해서는 안되므로 정확한 커밋 ID에 의존하지 않습니다.
Vlad Frolov

4
git push --force-with-lease origin pr-branch그렇지 실수로 핵 다른 사람의 변경을 할 수 있도록
binarymason

21

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

스크린

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


11
이 답변은 기본적으로 수락 된 것과 동일하며 훨씬 나중에 제출되었습니다.
Dan Dascalescu

5
@DanDascalescu 게시 할 때 스크린 샷이 없었습니다. 그리고 나는 단지 당신이 다른 사람의 응답을 편집 할 수 있다는 것을 알고 있습니다! ;)
Juan

1
@ Juan은 불필요한 혼란을 더하고 있기 때문에 내가 제안하는이 답변을 여전히 삭제할 수 있습니다.
Rafal Enden

20

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

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

3
이것은 새로 만든 프로젝트를 가진 사람들에게 답입니다.
Eric MORAND

16

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"
 }

당신은 당신의 포크에 대한 자신의 Travis 빌드를 설정할 수 있습니다.
Sam Brightman

당김 요청이 이루어진 분기를 만들 수 있습니다.
Sam Brightman

당신의 PR과 PR의 지점은 본질적으로 같은 것입니다. PR을 만든 이후에 업스트림에 다른 변경 사항이있는 경우이를 100 % 확실하게 리베이스해야합니다. 그러나 어쨌든 GitHub는 UI에 rebase 버튼을 표시하여이 경우 새로운 PR 빌드를 트리거해야합니다.
Sam Brightman

11

Travis는 이제 웹 UI에서 "사용자 정의"빌드를 트리거하는 방법을 제공합니다. 프로젝트 페이지 상단의 오른쪽에있는 "추가 옵션"메뉴 버튼을 찾으십시오.

추가 옵션 → 트리거 빌드

그런 다음 분기를 선택하고 구성을 사용자 정의 할 수있는 대화 상자가 표시됩니다.

커스텀 빌드 대화 상자

내가 쓰는 시점에서 베타 버전이며 약간 버그가있는 것으로 보입니다 (그러나 문제가 곧 해결 될 것으로 기대합니다).


2
감사. 저에게는 트리거 빌드가 간단한 재 구축 (단추를 통한)이 아니라 빌드의 ID도 변경하기 때문에 최상의 응답입니다. 스크립트에서 Travis 'id를 사용하는 경우 알아야합니다.
Karima Rafes

2
이것은 더 높아야합니다
Gillespie

8

Travis CI Client 를 설치 travis restart <job#>하면 콘솔에서 빌드를 수동으로 다시 실행할 수 있습니다 . 당신은 지점의 마지막 직업을 찾을 수 있습니다travis show <branch>

travis show master
travis restart 48 #use Job number without .1
travis logs master

트래비스 CI 클라이언트

업데이트 : 슬프게도 최신 커밋을 사용하여 새 빌드를 시작하지 않고 대신 이전 상태의 레포를 사용하여 이전 빌드를 다시 시작하는 것처럼 보입니다.


업데이트 노트를 이해하지 못합니다. 명령에서 다시 시작할 작업을 정의 할 수있는 것처럼 보입니다. 따라서 질문은 작업을 시작하려고합니다. 대부분의 사람들은 커밋이 이미 트리거 된 경우이 작업을 수행하려고하지만 다시 테스트하려고합니다 ... 아직 커밋 분기 트리거를 비활성화하고 수동으로 HEAD를 빌드 할 수 없다고 생각합니다.
redanimalwar

@redanimalwar 일반적인 사용 사례는 변경 사항을 감지하지 못하거나 조용한 시간에 CI 빌드를 강제 실행하는 것입니다.
Sam Brightman

4

여기서 우리는 이제 웹에서 새로운 빌드를 시작하는 수단을 가지고 있다고 언급해야합니다. 자세한 내용은 https://blog.travis-ci.com/2017-08-24-trigger-custom-build 를 참조하십시오.

TL; DR "추가 옵션"을 클릭하고 "트리거 빌드"를 선택하십시오.


리포지토리에 대한 쓰기 액세스 / 협업자가없고 자체 풀 요청에 대해 빌드를 다시 실행하려는 경우에는 작동하지 않습니다. 그 옵션이 보이지 않습니다. 그리고 트래비스 CLI를하려고 할 때, 그것은 말한다 build #xxxx has been restarted 그러나 당신이 웹 페이지에 보면 당신은 일이 어떤 빌드를 볼 수 없습니다
bitek

3

빌드가 발생하지 않은 경우 (아마도 풀 요청 빌드 스위치를 제 시간에 설정하지 않은 경우) Github의 풀 요청을 닫은 상태로 표시 한 다음 열린 상태로 표시하면 새 빌드가 트리거됩니다.


1

방금 풀 요청에서 테스트를 트리거하여 여기에서 'update branch'를 클릭하여 다시 실행하십시오. github 검사 테스트 구성 요소


1

Dependabot이 열었지만 PR의 오류로 인해 실패한 PR에서 재 구축을 시작하는 데 도움이 된 것은 .travis.yml다음 과 같습니다.

  1. PR 종료
  2. Dependabot이 의견을 기다릴 때까지 기다립니다 ( "이 릴리스에 대해 다시 알려 드리지 않지만 새 버전이 나오면 연락을 드릴 것입니다."). 분기를 제거합니다.
  3. Dependabot이 제거한 분기를 복원하십시오 (예 :) dependabot/cargo/tempfile-3.0.4.
  4. PR을 다시여십시오

1

먼저 Travis 에 로그인 하십시오 . 다시 빌드 버튼은 로그인 할 때까지 나타나지 않습니다. 이것이 명백하다는 것을 알고 있지만 누군가가 그 위에 트립했습니다. ;-)


0

때로는 서버가 실수를 한 경우가 있습니다. 로그 아웃 / 로그인을 시도하면 모든 것이 올바르게 될 수 있습니다. (예, 오늘 오후에 나에게 일어났습니다.)


-1

쓰기 권한이 없으면 Simlpy가 PR을 닫았다가 다시여십시오.


아니요, 쓰레기 풀 요청을 남겨 두지 마십시오. 성가신 일입니다. 새로운 커밋을 분기로 푸시하십시오 (예 : 커밋 날짜를 변경할 수 있습니다 : git commit --amend --date = now && git push -f).
intgr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.