Obtención de la twig de inserción de Git en el eje definido por el usuario del proyecto de configuration múltiple de Jenkins

Tengo un proyecto en el que hay dos twigs. La twig de develop se debe comstackr cada vez que se inserta el código en la twig y el master solo debe ejecutarse cuando se realiza manualmente. Encontré el proyecto de configuration múltiple en el que puedo usar parameters para especificar diferentes commands de compilation para ambas twigs. Podría escribir develop/pom.xml para mi branch de develop y master/pom.xml para mi twig master con respecto a las carpetas. Pero quiero usar un parámetro en lugar del nombre de la twig como $branch/pom.xml donde el valor $branch debe getse de la twig a la que se envió. es posible? Si no, ¿hay alguna forma de solucionar esto?

Crearía dos proyectos de Jenkins:

  • develop-build-trigger (Freestyle)
  • build-given-branch (Maven)

y configure el complemento de Git> Notificación de inserción desde el repository :

Para minimizar la demora entre un empuje y una construcción, se recomienda configurar el enganche posterior a la recepción en el repository para golpear a Jenkins cuando se produce un nuevo empuje. Para hacer esto, agregue la siguiente línea en su file hooks/post-receive , donde <URL of the Git repository> es la URL completamente calificada que usa cuando clona este repository.

 curl http://yourserver/git/notifyCommit?url=<URL of the Git repository>[&branches=branch1[,branch2]*][&sha1=<commit ID>] 

Esto escaneará todos los trabajos que:

  • Tienen activadores de compilation> Poll SCM habilitado. No se requiere un horario de votación.
  • Están configurados para build el repository en la URL especificada
  • Están configurados para comstackr las twigs especificadas opcionalmente o la ID de confirmación

Ver también Pro Git, 8.3 Personalizar Git – Ganchos Git .

<Your repo>/.git/hooks/post-receive

 curl http://<Your Jenkins>/git/notifyCommit?url=<Your repo>&branches=develop 

Proyecto Freestyle desarrollar-build-activar

  • Gestión de código fuente

    • ◉ Git

      • Repositorios

        • URL de repository: ... your repo ...
      • Sucursales para build

        • Branch Specifier: develop
  • Desarrollar triggers

    • ☑ Encuesta SCM
  • Acciones posteriores a la construcción

    • Desencadenar la creación parametrizada en otros proyectos
      • Desarrollar triggers
        • Proyectos para build: build-given-branch
        • Parámetros pnetworkingefinidos
          • Parámetros: branch=develop

Este proyecto se activará post-receive ya que especifica develop como una twig para comstackr, que se ajusta a la twig que se proporciona en la URL del gancho post-receive .

Maven project build-given-branch

  • ☑ Esta construcción está parametrizada

    • Parámetro de elección

      • Nombre: branch
      • Opciones:

         master develop 
  • Gestión de código fuente

    • ◉ Git

      • Repositorios

        • URL de repository: ... your repo ...
      • Sucursales para build

        • Branch Specifier: $branch
  • Construir

    • Root POM: $branch/pom.xml

Construya con Parámetros y confirme el valor master pnetworkingeterminado para una compilation master manual. (Como beneficio adicional, también puede desarrollar develop manualmente).

Una desventaja es que revisa su twig de develop dos veces, una vez en cada proyecto.

Dicho esto, también quiero mencionar que es inusual tener diferentes POM para el mismo proyecto. Si hay diferentes vistas para un proyecto, si se deben hacer cosas diferentes según estas vistas, Maven admite Build Profiles :

Modifican el POM en time de compilation, y están destinados a ser utilizados en sets complementarios para dar parameters equivalentes pero diferentes para un set de entornos de destino (proporcionando, por ejemplo, la ruta del server de aplicaciones raíz en el desarrollo, testing y entornos de producción).

Esto significa que en su caso BuildRoot POM permanece vacío y → Goals and options : -P $branch (con el master siendo el perfil <activeByDefault> que no cambia nada en la configuration).