Programing

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

lottogame 2020. 2. 25. 22:02
반응형

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


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

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

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

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


  • 당신이 REPO에 대한 쓰기 액세스가있는 경우 : 빌드의 상세 화면을 버튼이 툴팁 "다시 빌드"와 함께.

    참고 : 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"
 }

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

추가 옵션 → 트리거 빌드

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

커스텀 빌드 대화 상자

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


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

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

트래비스 CI 클라이언트

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


I should mention here that we now have a means of triggering a new build on the web. See https://blog.travis-ci.com/2017-08-24-trigger-custom-build for details.

TL;DR Click on "More options", and choose "Trigger build".


If the build never occurred (perhaps you didn't get the Pull-Request build switch set to on in time), you can mark the Pull Request on Github as closed then mark it as opened and a new build will be triggered.


I just triggered the tests on a pull request to be re-run by clicking 'update branch' here: github 검사 테스트 구성 요소


Here's what worked for me to trigger a rebuild on a PR that Dependabot had opened, but failed due to errors in .travis.yml:

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

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

참고 URL : https://stackoverflow.com/questions/17606874/trigger-a-travis-ci-rebuild-without-pushing-a-commit



반응형