Tout le monde à gérer leur intégration continue avec TeamCity, FinalBuilder et Mercurial (Kiln)? [dupliquer]

StackOverflow https://stackoverflow.com/questions/2413504

Question

  

Possible en double:    pile d'intégration continue sur Windows avec Mercurial + Mercurial Queues?

Si oui, qu'est-ce que votre processus de construction ressembler?

Je suis un moment difficile (surtout à cause de mon manque d'expérience / compréhension des 3 outils) se TeamCity pour exécuter mes scripts FinalBuilder. En ce moment, je FinalBuilder gérer toutes les caisses de contrôle de source et TeamCity fondamentalement juste d'exécuter le script FinalBuilder et de la lecture dans les résultats des tests NUnit, mais il ne fonctionne pas en raison d'erreurs d'authentification lors de l'exécution des commandes mercuriels au four.

Était-ce utile?

La solution

Si vous avez installé le client Kiln sur la machine exécutant votre script FinalBuilder, vous aurez accès à l'extension Mercurial « de kilnauth » qui devrait résoudre ce problème pour vous.

Il suffit de se connecter à la machine de construction que l'utilisateur qui exécute le script FinalBuilder et exécuter manuellement une simple pression ou commande tirer depuis le dépôt Mercurial que vous essayez d'utiliser, vous serez invité à authentifier. Authentifient une fois, et les extensions Kiln clients se souviendront de cette authentification pour cet utilisateur ... et les exécutions suivantes par le script FinalBuilder doivent authentifier très bien.

Est-ce que résoudre le problème pour vous? Il est la meilleure solution car il ne stocke pas de nom d'utilisateur ou mot de passe sur votre ordinateur. Il y a évidemment d'autres possibilités, comme changer le chemin de votre Mercurial pour utiliser le format http: // {nom d'utilisateur}: {password} @ {url} four ... mais ce n'est pas aussi beau ou sûr que la technique ci-dessus.

Est-ce sens?

Autres conseils

Je ne sais pas quoi que ce soit au sujet de Kiln, mais je viens juste de commencer à travailler pour VSoft et je travaille sur une action Mercurial pour la prochaine version de FinalBuilder. Espérons que certains cela va aider.

Êtes-vous athenticating via SSH ou SSL? Pouvez-vous tirer / pousser vers le dépôt de la ligne de commande? Jolie quelque chose que vous pouvez obtenir à travailler à partir de la ligne de commande devrait être possible avec FinalBuilder.

Pour vous authentifier auprès BitBucket via SSH, je l'ai fait ce qui suit:

  • Télécharger puttygen et reconstitution historique
  • créer une nouvelle clé SSH dans puttygen
  • ajouter la clé privée à Pageant
  • ajouter la clé publique à BitBucket

A partir de là, je peux avec succès

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

NB, j'ai aussi TortoiseHG installé, et Mercurial est utilise TortoisePlink comme le client ssh.

Si vous utilisez SSL, vous pouvez stocker le combo nom d'utilisateur / mot de passe dans votre action FinalBuilder. Pour activer une boîte de TextEdit dans un champ de mot de passe, modifiez la propriété PasswordChar de #0 à *. Ensuite, en cas de ReadData, ajouter quelque chose comme

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

et en cas de WriteData, ajouter

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

Lorsque vous ajoutez la propriété Token à votre action, cochez les options de Property is Hidden from Action Inspector et Property is Read Only in Action Inspector.

Pour générer votre chaîne dépôt, vous aurez envie de faire quelque chose comme ça dans l'événement GetCommandLine de l'action:

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, je ne l'ai pas testé ce code, mais nous espérons qu'il vous donne une idée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top