¿Desencadenar una reconstrucción de Travis-CI sin presionar un commit?


Usando Travis-CI, ¿es posible activar una reconstrucción sin enviar una nueva confirmación a GitHub?

Caso de uso: Una compilación falla debido a una externalidad. La fuente es en realidad correcta. Se construiría bien y pasar si simplemente se vuelve a ejecutar.

Por ejemplo, un apt-get falla debido a que un servidor de paquetes está inactivo, pero el servidor está nuevamente activado. Sin embargo, el estado de compilación está "atascado" en "falló" hasta que se envía una nueva confirmación.

¿Hay alguna manera de empujar a Travis-CI para hacer otra construcción, otra que empujar un" maniquí " commit?

 341
Author: Greg Hendershott, 2013-07-12

13 answers

  • Si tienes acceso de escritura al repositorio: En la pantalla de detalles de la compilación, hay un botón con el tooltip "Restart Build".

    Nota: Las extensiones del navegador como Ghostery pueden impedir que se muestre el botón de reinicio. Intente deshabilitar la extensión o la lista blanca de Travis CI.

    Note2: Si la configuración de .travis.yml ha cambiado en el upstream, al hacer clic en el botón rebuild se ejecutará travis con la configuración anterior. Para aplicar upstream cambios para la configuración de travis uno tiene que añadir commit a PR o para cerrarlo / reabrirlo.

  • Si has enviado una pull request : Puedes cerrar el PR y luego abrirlo de nuevo. Esto activará una nueva construcción.

ButtonPicutre

 377
Author: jbtule,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-16 23:04:02

Si abre la pestaña Settings para el repositorio en GitHub, haga clic en Integrations & services, busque Travis CI y haga clic en Edit, debería ver un botón Test Service. Esto activará una compilación.

 199
Author: Aaron Hill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-06 19:07:56

Sé que dijiste sin empujar un commit, pero algo que es útil, si estás trabajando en una rama que no sea master, es enviar un commit vacío.

git commit --allow-empty -m "Trigger"

Puedes rebase al final y eliminar squash / eliminar las confirmaciones vacías y funciona en todos los ganchos de git:)

 62
Author: jasonmit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-29 07:58:24

Inicie sesión en Travis y vaya a la página de compilación. Verá un botón "Reiniciar compilación" en la esquina superior derecha, junto al icono de engranaje:

screengrab

Nota: necesitas tener acceso de escritura al repositorio de GitHub vinculado para que esto funcione.

 22
Author: Juan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-12 11:52:23

Si tienes un nuevo proyecto en GitHub que tiene .travis.yml, pero nunca fue probado, puede ejecutar pruebas sin confirmar de esta manera:

  1. habilitar las pruebas en Travis CI setings
  2. abrir la página del proyecto en GitHub
  3. configuración abierta - > webhooks y servicios
  4. encuentre Travis CI en servicios y presione el botón editar
  5. presione "Servicio de prueba"
 20
Author: lampslave,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-02 23:41:00

Puede hacer esto usando el Travis CLI. Como se describe en la documentación , primero instale la herramienta CLI, luego:

travis login --org --auto
travis token

Puede mantener este token en una variable de entorno TRAVIS_TOKEN, siempre y cuando el archivo en el que lo mantenga no esté controlado por la versión en algún lugar público.

Uso esta función para enviar disparadores:

function travis_trigger() {
     local org=$1 && shift
     local repo=$1 && shift
     local branch=${1:-master} && shift

     body="{
             \"request\": {
               \"branch\": \"${branch}\"
              }
           }"

     curl -s -X POST \
          -H "Content-Type: application/json" \
          -H "Accept: application/json" \
          -H "Travis-API-Version: 3" \
          -H "Authorization: token $TRAVIS_TOKEN" \
          -d "$body" \
          "https://api.travis-ci.org/repo/${org}%2F${repo}/requests"
 }
 12
Author: Sam Brightman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-24 16:33:37

He encontrado otra forma de forzar la repetición de compilaciones de CI y otros disparadores:

  1. Ejecute git commit --amend --no-edit sin ningún cambio. Esto recreará la última confirmación en la rama actual.
  2. git push --force-with-lease origin pr-branch.
 11
Author: Vlad Frolov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-09 09:49:00

Si instala el cliente Travis CI puede usar travis restart <job#> para volver a ejecutar manualmente una compilación desde la consola. Puedes encontrar el último trabajo# para una rama usando travis show <branch>

travis show master
travis restart 48 #use Job number without .1
travis logs master

Travis CI Cliente

ACTUALIZAR: Lamentablemente parece que esto no inicia una nueva compilación usando la última confirmación, sino que simplemente reinicia una compilación anterior usando el estado anterior del repositorio.

 8
Author: Greg Bray,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-09 18:31:42

Debo mencionar aquí que ahora tenemos un medio para activar una nueva compilación en la web. Véase https://blog.travis-ci.com/2017-08-24-trigger-custom-build para más detalles.

TL; DR Haga clic en " Más opciones "y elija"Trigger build".

 4
Author: banzaiman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-25 15:32:09

Si la compilación nunca se produjo (tal vez no se estableció el interruptor de compilación Pull-Request en activado a tiempo), puede marcar la solicitud Pull en Github como cerrada y luego marcarla como abierta y se activará una nueva compilación.

 3
Author: viperguynaz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-15 21:39:26

Travis ahora ofrece una forma de activar una compilación "personalizada" desde su interfaz web. Busca el botón de menú "Más opciones" en el lado derecho, cerca de la parte superior de la página de tu proyecto.

Más Opciones → Trigger Build

Se le presentará un cuadro de diálogo en el que podrá elegir la rama y personalizar la configuración:

Cuadro de Diálogo de Compilación Personalizada

En el momento en que estoy escribiendo esto está en beta, y parece tener un poco de errores (pero espero que solucionen los problemas pronto).

 3
Author: iconoclast,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-17 23:08:42

Acabo de activar las pruebas en una solicitud de extracción para que se vuelvan a ejecutar haciendo clic en 'actualizar rama' aquí: componente de pruebas de comprobación de github

 1
Author: Frazer Kirkman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-13 20:52:44

Simlpy cierra y vuelve a abrir el PR si no tienes el acceso de escritura.

 -1
Author: Punit Naik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-05 14:28:30