Frage

  

Mögliche Duplizieren:
   Continuous Integration-Stack unter Windows mit Mercurial + Mercurial Queues?

Wenn ja, wie sieht Ihr Build-Prozess aussehen?

Ich habe eine schwierige Zeit (vor allem wegen meiner mangelnden Erfahrung / Verständnis für alle 3-Tools) bekommen Teamcity meine Finalbuilder-Skripte ausführen. Im Moment habe ich Finalbuilder alle Quellcodeverwaltung Auscheckvorgänge Verwaltung und Teamcity im Grunde nur die Finalbuilder Skript ausgeführt und in den NUnit Testergebnisse zu lesen, aber es funktioniert nicht aufgrund Authentifizierungsfehler während Mercurial Befehle Ofen ausgeführt wird.

War es hilfreich?

Lösung

Wenn Sie den Kiln-Client auf dem Ihr Skript ausgeführt Finalbuilder Maschine installiert haben, erhalten Sie Zugriff auf die „kilnauth“ Quecksilber-Erweiterung haben, die dieses Problem für Sie lösen sollte.

Just Anmeldung auf den Build-Rechner als Benutzer, der die Finalbuilder Skript ausgeführt und manuell eine Push ausführen oder einen Befehl aus dem Mercurial-Repository ziehen Sie zu verwenden sind versuchen, werden Sie zur Authentifizierung aufgefordert. Authentifizieren einmal, und die Kiln-Client-Erweiterungen werden sich erinnern, diese Authentifizierung für diesen Benutzer ... und alle nachfolgenden Läufe durch die Finalbuilder-Skript sollte authentifizieren gut.

Ist dies das Problem für Sie lösen? Es ist die beste Lösung, da es keinen Benutzername oder Passwort auf Ihrem Rechner speichert. Natürlich gibt es andere Möglichkeiten, wie Sie den Pfad der Mercurial Änderung des Formats http: // verwenden {username}: {Passwort} @ {Ofen url} ... aber das ist nicht so schön oder sicher wie die Technik, die oben.

Ist das sinnvoll?

Andere Tipps

Ich weiß nichts über Kiln, aber ich habe gerade angefangen für VSoft arbeiten und bin auf einer Mercurial Aktion für die nächste Version von Finalbuilder. Hoffentlich einige dieser helfen.

athenticating Sie per SSH oder SSL? Können Sie / Push-to-Repository von der Kommandozeile ziehen? So ziemlich alles, was man bekommen kann von der Kommandozeile arbeiten sollte möglich sein, mit Finalbuilder.

zu BitBucket via SSH zu authentifizieren, habe ich die folgenden:

  • download puttygen und Festzug
  • Erstellen Sie einen neuen SSH-Schlüssel in puttygen
  • fügen Sie die privaten Schlüssel Zu
  • fügen Sie den öffentlichen Schlüssel zu BitBucket

Von dort aus kann ich erfolgreich

hg push ssh://hg@bitbucket.org/user/repo

NB, ich auch haben TortoiseHG installiert und Mercurial verwendet TortoisePlink als SSH-Client.

Wenn Sie SSL verwenden, können Sie den Benutzernamen / Passwort Combo speichern in Ihrem Finalbuilder Aktion. Um ein TextEdit-Box in ein Passwortfeld zu aktivieren, ändern Sie die PasswordChar Eigenschaft von #0 *. Dann in der ReadData Ereignis, fügen Sie so etwas wie

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

und im WriteData Ereignisse, fügt

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

Wenn Sie die Token Eigenschaft auf Ihre Aktion hinzufügen möchten, kreuzen Sie die Property is Hidden from Action Inspector und Property is Read Only in Action Inspector Optionen.

Ihr Repository Zeichenfolge zu generieren, Sie wollen in der Aktion des GetCommandLine Ereignis, so etwas tun:

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, ich habe diesen Code nicht getestet, aber hoffentlich gibt es Ihnen eine Idee.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top