Подтвердить что ты не робот

Каковы различия между параметрами {before _,} {install, script}.travis.yml?

Внутри конфигурационного файла .travis.yml какая практическая разница между before_install, install, before_script и script параметрами?

Я не нашел документации, объясняющей различия между этими параметрами.

4b9b3361

Ответ 1

Вам не нужно использовать эти разделы, но если вы это сделаете, вы сообщаете о намерениях, которые вы делаете:

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.

Ответ 2

Разница в состоянии работы, когда что-то идет не так.

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 ' тоже ничего не сделает, поэтому удалите и эти переопределяющие директивы.

Ответ 3

Жизненный цикл сборки

Сборка Travis CI состоит из двух этапов:

install: установить любые необходимые script зависимостей: запустить сценарий сборки. Вы можете запускать пользовательские команды перед этапом установки (before_install) и перед (before_script) или после (after_script) шага сценария.

На этапе before_install вы можете установить дополнительные зависимости, необходимые для вашего проекта, такие как пакеты Ubuntu или пользовательские службы.

Узнайте больше здесь