Cualquier persona manejar su integración continua con TeamCity, FinalBuilder, y Mercurial (horno)? [duplicar]

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

Pregunta

  

Duplicar posible:
   pila de integración continua en Windows con mercuriales + Colas de Mercurial?

Si es así, ¿Cómo es tu proceso de construcción como?

Estoy teniendo un momento difícil (sobre todo debido a mi falta de experiencia / conocimiento de todas las herramientas 3) conseguir TeamCity para ejecutar mis guiones FinalBuilder. Ahora mismo tengo FinalBuilder la gestión de todas las cajas de control de origen y TeamCity básicamente sólo ejecutar el script FinalBuilder y la lectura en los resultados de la prueba de NUnit, pero no funciona debido a errores de autenticación durante la ejecución de comandos mercuriales para horno.

¿Fue útil?

Solución

Si ha instalado el cliente de horno en el equipo que ejecuta el script de FinalBuilder, tendrá acceso a la "kilnauth" extensión mercurial que debe resolver este problema para usted.

Sólo tiene que acceder a la máquina de construcción como el usuario que ejecuta el script FinalBuilder y ejecutar manualmente una ampliación o reducción de comandos desde el repositorio de Mercurial que está tratando de usar, se le pedirá para autenticar. Autentican una vez, y las extensiones de cliente de horno recordarán esta autenticación para este usuario ... y cualquier ejecuciones posteriores de la secuencia de comandos FinalBuilder deben autenticarse muy bien.

¿Esto soluciona el problema para usted? Es la mejor solución, ya que no almacena ningún nombre de usuario o contraseña en su máquina. Obviamente, hay otras posibilidades, como cambiar la ruta de su Mercurial usar el formato http: // {usuario}: {password} @ {url} horno ... pero esto no es tan bonito o segura como la técnica anterior.

¿Esto tiene sentido?

Otros consejos

No sé nada acerca de horno, pero acabo de empezar a trabajar para VSoft y estoy trabajando en una acción de Mercurial para la próxima versión de FinalBuilder. Esperamos que algunos esto ayudará.

¿Está athenticating a través de SSH o SSL? Se puede tirar / empujar al repositorio desde la línea de comandos? Casi cualquier cosa se puede llegar a trabajar desde la línea de comandos debería ser posible con FinalBuilder.

Para autenticar a BitBucket a través de SSH, hice lo siguiente:

  • descargar puttygen y desfile
  • crear una nueva clave SSH en puttygen
  • añadir la clave privada al certamen
  • añadir la clave pública a BitBucket

A partir de ahí, que pueda éxito

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

NB, también tengo instalado TortoiseHG, y Mercurial está utilizando TortoisePlink como el cliente ssh.

Si está utilizando SSL, puede almacenar el combo nombre de usuario / contraseña en su acción FinalBuilder. Para convertir un cuadro de edición de textos en un campo de contraseña, cambiar la propiedad de PasswordChar #0 a *. Luego, en el caso ReadData, añadir algo como

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

y en el caso WriteData, añadir

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

Cuando se agrega la propiedad Token a su acción, marque las opciones Property is Hidden from Action Inspector y Property is Read Only in Action Inspector.

Para generar la cadena de repositorio, tendrá que hacer algo como esto en caso GetCommandLine de la acción:

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, no he probado ese código, pero espero que te da una idea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top