Запускать восстановление 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-сборки и другие триггеры:
- Запустить
git commit --amend --no-edit
без каких-либо изменений. Это приведет к воссозданию последнего фиксации в текущей ветке. -
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
:
- Закрыть пиар
- Подождите, пока Dependabot оставит комментарий ("Хорошо, я больше не буду уведомлять вас об этом выпуске, но свяжусь с вами, когда появится новая версия".). Он удалит свою ветвь.
- Восстановите ветку, удаленную Dependabot (что-то вроде
dependabot/cargo/tempfile-3.0.4
).
- Откройте пиар снова
Ответ 14
Пожалуйста, сначала убедитесь, что Войдите в Travis. Кнопка перестроения не появляется, пока вы не вошли в систему. Я знаю, что это очевидно, но кто-то просто нажал на это ;-)
Ответ 15
Simlpy закрывает и повторно открывает PR, если у вас нет доступа на запись.