Запускать восстановление Travis-CI без нажатия на фиксацию?

Используя Travis-CI, можно вызвать перестройку без нажатия новой фиксации на GitHub?

Случай использования: сборка выходит из строя из-за внешнего вида. Источник на самом деле правильный. Он будет строить ОК и проходить, если просто перезапустить.

Например, apt-get не удается из-за отказа сервера пакетов, но сервер снова возвращается в исходное состояние. Однако статус сборки "застревает" при "сбой" до тех пор, пока не будет нажата новая фиксация.

Есть ли способ подтолкнуть Travis-CI сделать еще одну сборку, кроме нажатия "dummy" commit?

Ответ 1

  • Если у вас есть доступ на запись к репо: на экране подробных сведений о сборке есть кнопка с помощью всплывающей подсказки "Restart Build".

    Примечание. Расширения браузера, такие как Ghostery, могут препятствовать отображению кнопки перезапуска. Попробуйте отключить расширение или белый список Travis CI.

    Примечание2: Если в восходящем потоке изменилась конфигурация .travis.yml, нажатие кнопки перестройки запускает трейс со старой конфигурацией. Чтобы применить восходящие изменения для конфигурации travis, нужно добавить фиксацию PR или закрыть/снова открыть ее.

  • Если вы отправили запрос на перенос: вы можете закрыть PR, а затем снова открыть его, Это вызовет новую сборку.

ButtonPicutre

Ответ 2

Если вы открываете вкладку Настройки для репозитория в GitHub, нажмите Интеграции и службы, найдите Travis CI и нажмите Edit, вы должны увидеть кнопку Test Service. Это вызовет сборку.

Ответ 3

Я знаю, что вы сказали, не нажимая фиксацию, но что-то удобное, если вы работаете над веткой, отличной от мастера, - это совершить пустую фиксацию.

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

В конце вы можете пересобираться и удалять сквош/удалять пустые коммиты и работать через все git hooks:)

Ответ 4

Я нашел другой способ заставить повторно запустить CI-сборки и другие триггеры:

  1. Запустить git commit --amend --no-edit без каких-либо изменений. Это приведет к воссозданию последнего фиксации в текущей ветке.
  2. git push --force-with-lease origin pr-branch.

Ответ 5

Войдите в Travis и перейдите на страницу сборки. Вы увидите кнопку "Перезапустить сборку" в правом верхнем углу рядом с значком шестеренки:

screengrab

Примечание. Для этого вам необходимо иметь доступ на запись к связанному репозиторию GitHub.

Ответ 6

Если у вас есть новый проект на GitHub, у которого есть .travis.yml, но он никогда не тестировался, вы можете запускать тесты без коммита:

  • включить тестирование в настройках Трэвиса CI
  • открыть страницу проекта на GitHub
  • открыть настройки → веб-узлы и службы
  • найдите Travis CI в сервисах и нажмите кнопку редактирования
  • нажмите "Сервис тестирования"

Ответ 7

Вы можете сделать это, используя Travis CLI. Поскольку описанный в документации, сначала установите инструмент CLI, а затем:

travis login --org --auto
travis token

Вы можете сохранить этот токен в переменной окружения TRAVIS_TOKEN, если файл, который вы храните в нем, не контролируется версией где-то публично.

Я использую эту функцию для отправки триггеров:

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"
 }

Ответ 8

Теперь Трэвис предлагает способ запуска "пользовательской" сборки из своего веб-интерфейса. Найдите кнопку меню "Дополнительные параметры" в правой части страницы в верхней части страницы проекта.

More Options → Trigger Build

Затем вы увидите диалоговое окно, в котором вы можете выбрать ветку и настроить конфигурацию:

Custom Build Dialog Box

В то время, когда я пишу это, он находится в бета-версии и, кажется, слегка глючит (но я ожидаю, что они скоро исправят проблемы).

Ответ 9

Если вы установите Travis CI Client, вы можете использовать travis restart <job#> для повторного запуска сборки с консоли. Вы можете найти последнее задание # для ветки с помощью travis show <branch>

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

Travis CI Client

UPDATE: К сожалению, похоже, что это не запускает новую сборку с использованием последнего коммита, а вместо этого просто перезапускает предыдущую сборку, используя предыдущее состояние репо.

Ответ 10

Здесь я должен упомянуть, что теперь у нас есть средство запуска новой сборки в Интернете. Подробнее см. https://blog.travis-ci.com/2017-08-24-trigger-custom-build.

TL; DR Нажмите "Дополнительные параметры" и выберите "Триггерная сборка".

Ответ 11

Если сборка никогда не происходила (возможно, у вас не было установлено, что переключатель сборки Pull-Request установлен вовремя), вы можете пометить запрос Pull на Github как закрытый, а затем пометить его как открытую и создать новую сборку.

Ответ 12

Я только что вызвал тесты на запрос на перенос, которые нужно перезапустить, нажав здесь "ветвь обновления": github check tests component

Ответ 13

Вот что сработало для меня, чтобы инициировать перестроение на PR, который Dependabot открыл, но потерпел неудачу из-за ошибок в .travis.yml:

  1. Закрыть пиар
  2. Подождите, пока Dependabot оставит комментарий ("Хорошо, я больше не буду уведомлять вас об этом выпуске, но свяжусь с вами, когда появится новая версия".). Он удалит свою ветвь.
  3. Восстановите ветку, удаленную Dependabot (что-то вроде dependabot/cargo/tempfile-3.0.4).
  4. Откройте пиар снова

Ответ 14

Пожалуйста, сначала убедитесь, что Войдите в Travis. Кнопка перестроения не появляется, пока вы не вошли в систему. Я знаю, что это очевидно, но кто-то просто нажал на это ;-)

Ответ 15

Simlpy закрывает и повторно открывает PR, если у вас нет доступа на запись.