3

가능한 중복 :
Continuous Integration stack on Windows with Mercurial + Mercurial Queues?TeamCity, FinalBuilder 및 Mercurial (Kiln)과의 지속적인 통합을 관리하는 사람은 누구입니까?

그렇다면, 어떤 빌드 프로세스가 생겼는데?

TeamCity에서 FinalBuilder 스크립트를 실행하는 데 어려움을 겪고 있습니다. (주로 3 가지 도구에 대한 경험 부족/이해 부족). 지금 당장 FinalBuilder는 모든 소스 컨트롤 체크 아웃과 TeamCity를 관리하여 기본적으로 FinalBuilder 스크립트를 실행하고 NUnit 테스트 결과를 읽었지만 킬른에 대한 수은 명령을 실행하는 동안 인증 오류로 인해 작동하지 않습니다.

답변

3

FinalBuilder 스크립트를 실행하는 시스템에 Kiln Client를 설치 한 경우이 문제를 해결할 수있는 "kilnauth"확장 프로그램에 액세스 할 수 있습니다.

FinalBuilder 스크립트를 실행하는 사용자로 빌드 시스템에 로그온하고 사용하려는 Mercurial 리포지토리에서 수동으로 하나의 푸시 또는 풀 명령을 실행하기 만하면 인증하라는 메시지가 표시됩니다. 한 번만 인증하면 Kiln Client 확장이이 사용자에 대한이 인증을 기억할 것입니다 ... 그리고 FinalBuilder 스크립트에 의한 후속 실행은 정상적으로 인증되어야합니다.

이 문제가 해결 되었습니까? 그것은 기계에 사용자 이름이나 암호를 저장하지 않기 때문에 최고의 솔루션입니다. Mercurial의 경로를 http : // {username} : {password} @ {kiln url} 형식으로 변경하는 것과 같은 다른 가능성이 분명히 있습니다. 그러나 위의 기술만큼 좋지도 안전하지도 않습니다.

의미가 있습니까?

+1

TeamCity와 함께 작동시키지 못했지만 http://www.jetbrains.net/devnet/thread/286891의 조언에 따라 해결할 수있었습니다 ... –

2

나는 Kiln에 대해 아무것도 몰라.하지만 나는 VSoft에서 일하기 시작했으며 FinalBuilder의 차기 버전에서 Mercurial 액션을하고있다. 희망적으로이 중 일부가 도움이 될 것입니다.

SSH 또는 SSL을 통해 인증 하시겠습니까? 명령 줄에서 저장소로 가져올 수 있습니까? FinalBuilder를 사용하면 커맨드 라인에서 작업 할 수있는 거의 모든 것이 가능해야합니다. 개인 키는

  • 가 추가 미인 대회합니다
  • 추가 puttygen을 새로운 SSH 키를 생성

    • 다운로드 puttygen을하고 대회 :

      가 SSH를 통해의 Bitbucket에 인증하기 위해, 나는 다음을 않았다 BitBucket 공개 키

    여기에서 성공적으로 수행 할 수 있습니다.

    hg push ssh://[email protected]/user/repo 
    

    NB에는 TortoiseHG도 설치되어 있으며, Mercurial은 TshoisePlink를 ssh 클라이언트로 사용하고 있습니다.

    SSL을 사용하는 경우 FinalBuilder 작업에 사용자 이름/비밀번호 조합을 저장할 수 있습니다. 텍스트 편집기 상자를 암호 필드로 바꾸려면 PasswordChar 속성을 #0에서 *으로 변경하십시오.그런 다음 ReadData 경우에,

    Page.tbPassword.Text = DecryptString(Properties.PropertyAsString("Token")); 
    

    같은 것을 추가하고, 당신의 행동에 Token 속성을 추가 Property is Hidden from Action InspectorProperty is Read Only in Action Inspector 옵션을 체크하면 WriteData 경우에,

    Properties.PropertyAsString("Token") = EncryptString(Page.tbPassword.Text); 
    

    를 추가합니다.

    var repo = Context.Properties.PropertyAsString("Repository"); 
    var username = Context.Properties.PropertyAsString("Username"); 
    var password = DecryptString(Context.Properties.PropertyAsString("Token")); 
    var repo = "ssh://" + username + ":" + password + "@" + repo; 
    
    CommandLine.AddArgument("push", repo, qtNone); 
    

    NB, 내가 그 코드를 테스트하지 않은,하지만 잘하면 그것은 당신에게 아이디어를 제공합니다 :

    는 작업의 GetCommandLine 경우에 이런 일을하고 싶은 것, 저장소 문자열을 생성합니다.

  • 관련 문제