Domanda

  

Eventuali duplicati:
   stack di Continuous Integration su Windows con Mercurial + Mercurial Queues?

Se è così, che cosa il vostro processo di compilazione simile?

Sto avendo un momento difficile (per lo più a causa della mia mancanza di esperienza / conoscenza di tutti i 3 strumenti) ottenendo TeamCity per eseguire i miei script FinalBuilder. In questo momento ho FinalBuilder gestione di tutte le estrazioni di controllo di origine e TeamCity fondamentalmente solo l'esecuzione dello script FinalBuilder e la lettura dei risultati dei test NUnit, ma non funziona a causa di errori di autenticazione durante l'esecuzione di comandi Mercurial al forno.

È stato utile?

Soluzione

Se avete installato il client Kiln sulla macchina che esegue lo script FinalBuilder, avrete accesso alla "kilnauth" estensione mercuriale che dovrebbe risolvere questo problema per voi.

Basta accedere al sistema di compilazione come l'utente che esegue lo script FinalBuilder ed eseguire manualmente un push o pull comando dal repository Mercurial si sta cercando di usare, ti verrà chiesto di autenticare. Autenticarsi una volta, e le estensioni client Kiln ricorderanno questa autenticazione per l'utente ... e le eventuali esecuzioni successive dallo script FinalBuilder devono autenticare bene.

Questo risolve il problema per te? E 'la soluzione migliore in quanto non memorizza alcun nome utente o la password sul computer. Ci sono ovviamente altre possibilità, come cambiare il percorso del Mercurial per utilizzare il formato http: // {username}: {Password} @ {url} forno ... ma questo non è così bello e sicuro come la tecnica di cui sopra.

Ha senso?

Altri suggerimenti

Io non so niente di Kiln, ma ho appena iniziato a lavorare per VSoft e sto lavorando su un'azione Mercurial per la prossima versione di FinalBuilder. Speriamo che alcuni di questo vi aiuterà.

Stai athenticating tramite SSH o SSL? Si può tirare / spingere al repository dalla riga di comando? Praticamente tutto ciò che si può arrivare a lavorare da linea di comando dovrebbe essere possibile con FinalBuilder.

Per effettuare l'autenticazione a BitBucket via SSH, ho fatto la seguente:

  • scarica puttygen e spettacolo
  • creare una nuova chiave SSH in puttygen
  • aggiungere la chiave privata per Pageant
  • aggiungere la chiave pubblica per BitBucket

Da lì, posso con successo

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

NB, ho anche installato TortoiseHg, e Mercurial sta usando TortoisePlink come il client ssh.

Se si utilizza SSL, è possibile memorizzare la combinazione username / password nella vostra azione FinalBuilder. Per attivare una finestra di TextEdit in un campo password, modificare la proprietà PasswordChar da #0 a *. Poi, nel caso ReadData, aggiungere qualcosa di simile

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

e in caso WriteData, aggiungi

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

Quando si aggiunge la proprietà Token per la vostra azione, barrare le caselle Property is Hidden from Action Inspector e Property is Read Only in Action Inspector.

Per generare la stringa di repository, ti consigliamo di fare qualcosa di simile nel caso in GetCommandLine del Azione:

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, non ho ancora testato quel codice, ma si spera che vi dà un'idea.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top