Внутри конфигурационного файла .travis.yml
какая практическая разница между before_install
, install
, before_script
и script
параметрами?
Я не нашел документации, объясняющей различия между этими параметрами.
Внутри конфигурационного файла .travis.yml
какая практическая разница между before_install
, install
, before_script
и script
параметрами?
Я не нашел документации, объясняющей различия между этими параметрами.
Вам не нужно использовать эти разделы, но если вы это сделаете, вы сообщаете о намерениях, которые вы делаете:
before_install:
# execute all of the commands which need to be executed
# before installing dependencies
- composer self-update
- composer validate
install:
# install all of the dependencies you need here
- composer install --prefer-dist
before_script:
# execute all of the commands which need to be executed
# before running actual tests
- mysql -u root -e 'CREATE DATABASE test'
- bin/doctrine-migrations migrations:migrate
script:
# execute all of the commands which
# should make the build pass or fail
- vendor/bin/phpunit
- vendor/bin/php-cs-fixer fix --verbose --diff --dry-run
См., Например, https://github.com/localheinz/composer-normalize/blob/0.8.0/.travis.yml.
Разница в состоянии работы, когда что-то идет не так.
Git 2.17 (Q2 2018) иллюстрирует это в коммите 3c93b82 (8 января 2018) SZEDER Gábor (szeder
).
(Объединено Junio C Hamano - gitster
- в коммите c710d18, 08 марта 2018 г.)
Это иллюстрирует практическую разницу между параметрами before_install
, install
, before_script
и script
travis-ci
: сборка Git на этапе "script
"С тех пор, как мы начали собирать и тестировать Git на Travis CI (522354d: добавить поддержку Travis CI, 2015-11-27, Git v2.7.0-rc0), мы собираем Git на этапе
before_script
и запускаем набор тестов в фазаscript
(за исключением более поздних введенных 32-битных заданий по сборке Linux и Windows, где мы строим фазуscript
).Напротив, практика Travis CI состоит в том, чтобы создавать и тестировать в фазе "
script
"; действительно, команда сборки Travis CI по умолчанию для фазы 'script
' проектов C/C++:./configure && make && make test
Причина, по которой Travis CI делает это таким образом и почему он лучше, чем у нас, заключается в том, как неудачные задачи по сборке классифицируются. После того, как что-то пошло не так в работе по сборке, ее состояние может быть:
'fail', если команда на этапе '
script
' вернула ошибку.
На это указывает красная буква "X" в веб-интерфейсе Travis CI.'ошибка', если команда на этапе '
before_install
', 'install
' или 'before_script
' возвратила ошибку или задание на сборку превысило ограничение по времени.
Это показано как красный '!' в веб-интерфейсе.Это облегчает, как людям, смотрящим на веб-интерфейс Travis CI, так и автоматизированным инструментам, запрашивающим API-интерфейс Travis CI, решение, когда неудачная сборка является нашей обязанностью, требующей внимания человека, то есть, когда задание сборки "не выполнено" из-за компилятора ошибка или сбой теста, и когда это вызвано чем-то, что находится вне нашего контроля и может быть исправлено путем перезапуска задания сборки, например, когда задание сборки "ошибочно" из-за невозможности установки зависимости из-за временной сетевой ошибки или из-за того, что Задание по сборке OSX превысило ограничение по времени.
Недостаток сборки Git в фазе
before_script
заключается в том, что необходимо также проверить журнал трассировки всех "ошибочных" заданий сборки, чтобы увидеть, что вызвало ошибку, так как это могло быть вызвано ошибкой компилятора.
Это требует дополнительных кликов и загрузки страниц в веб-интерфейсе, дополнительных сложностей и запросов API в автоматизированных инструментах.Поэтому переместите
before_script
Git из фазыbefore_script
фазуscript
, соответственно обновив и имя скрипта.
'ci/run-builds.sh
' теперь становится практически пустым, удалите его.
Некоторые из наших конфигураций заданий на сборку переопределяют наш стандартныйbefore_script
и ничего не делают; с этим изменением наш default 'before_script
' тоже ничего не сделает, поэтому удалите и эти переопределяющие директивы.
Сборка Travis CI состоит из двух этапов:
install
: установить любые необходимые script
зависимостей: запустить сценарий сборки. Вы можете запускать пользовательские команды перед этапом установки (before_install
) и перед (before_script
) или после (after_script
) шага сценария.
На этапе before_install
вы можете установить дополнительные зависимости, необходимые для вашего проекта, такие как пакеты Ubuntu или пользовательские службы.
Узнайте больше здесь