{before _,} {install, script} .travis.yml 옵션의 차이점은 무엇입니까?


81

내부 .travis.yml구성 파일 사이의 실질적인 차이는 무엇인가 before_install, install, before_scriptscript옵션은?

이 옵션의 차이점을 설명하는 문서를 찾지 못했습니다.



20
네, 그리고 "오류가 발생한"과 "실패"의 차이를 제외하고,이 사이의 차이점이 무엇인지에 대한 설명이 없다 before_install, install하고 before_script.
Daniele Orlando

답변:


74

이 섹션을 사용할 필요는 없지만 사용하는 경우 수행중인 작업의 의도를 전달합니다.

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
docs.travis-ci.com/user/docker 에서 docker build명령이 실행되는 이유를 여전히 이해하지 못합니다 before_install. install단계적 이어야하지 않습니까?
Pahlevi Fikri Auliya

@PahleviFikriAuliya 예제의 맥락에서 이해하는 docker build한 테스트 환경을 설정하는 데 사용됩니다. 종속성을 설치하기 전에 필요한 경우 before_install섹션 으로 이동하는 것이 합리적입니다 . 그렇지 않으면 before_script섹션이 더 적절합니다. docs.travis-ci.com/user/languages/ruby/#Bundler를 살펴보면 Docker가 종속성을 설치하는 데 필요하지 않아야한다는 것을 이해합니다.
localheinz

23

차이점은 무언가 잘못되었을 때 작업 상태에 있습니다.

Git 2.17 (2018 년 2 분기 )은 SZEDER Gábor ( )의 커밋 3c93b82 (2018 년 1 월 8 일)를 보여줍니다szeder .
(Merged by Junio ​​C gitsterHamano -- in commit c710d18 , 08 Mar 2018)

그 사이의 실질적인 차이 도면 before_install, install, before_scriptscript옵션

travis-ci: ' script'단계 동안 Git 빌드

우리가 구축하고 트래비스 CI에 힘내 테스트를 시작한 이래 ( 522354d : 우리는 '에서 힘내을 구축 트래비스 CI 지원, 2015년 11월 27일, 힘내 v2.7.0-RC0 추가) before_script'상을하고있는 테스트 스위트를 실행 ' script' 단계 ( ' script'단계 ' 에서 빌드하는 나중에 소개 된 32 비트 Linux 및 Windows 빌드 작업 제외 ).

반대로 Travis CI 관행은 ' script'단계 에서 빌드하고 테스트하는 것입니다 . 실제로 scriptC / C ++ 프로젝트 의 ' '단계에 대한 Travis CI의 기본 빌드 명령 은 다음과 같습니다.

./configure && make && make test

Travis CI가 이렇게하는 이유와 이것이 우리보다 더 나은 접근 방식 인 이유는 실패한 빌드 작업이 어떻게 분류되는지에 있습니다. 빌드 작업에서 문제가 발생한 후 상태는 다음과 같을 수 있습니다.

  • 'failed' , ' script'단계 의 명령 이 오류를 반환 한 경우.
    Travis CI 웹 인터페이스에서 빨간색 'X'로 표시됩니다.

  • 'errored' , ' before_install', ' install'또는 ' before_script'단계 의 명령 이 오류를 반환했거나 빌드 작업이 시간 제한을 초과 한 경우.
    이것은 빨간색 '!'로 표시됩니다. 웹 인터페이스에서.

이를 통해 Travis CI 웹 인터페이스를 보는 사람과 Travis CI API를 쿼리하는 자동화 된 도구 모두 실패한 빌드가 사람의주의가 필요한 경우 (예 : 컴파일러로 인해 빌드 작업이 '실패'된 경우)를 쉽게 결정할 수 있습니다. 오류 또는 테스트 실패로 인해 발생하고 빌드 작업을 다시 시작하여 수정할 수있는 경우 (예 : 일시적인 네트워크 오류로 인해 종속성을 설치할 수 없어서 빌드 작업이 '오류'되거나 OSX 빌드 작업이 시간 제한을 초과했습니다.

' before_script'단계 에서 Git을 빌드 할 때의 단점은 모든 '오류가 발생한'빌드 작업의 추적 로그를 확인하여 컴파일러 오류로 인해 발생한 것일 수 있으므로 오류의 원인을 확인해야한다는 것입니다.
이를 위해서는 웹 인터페이스에 대한 추가 클릭 및 페이지로드와 자동화 도구의 추가 복잡성 및 API 요청이 필요합니다.

따라서 빌드 Git을 ' before_script'단계 에서 ' '단계로 이동하여 script그에 따라 스크립트 이름도 업데이트하십시오.
' ci/run-builds.sh'이제 기본적으로 비어 있습니다. 제거하십시오.
빌드 작업 구성 중 일부는 기본 ' before_script'을 재정 의하여 아무것도하지 않습니다. 이렇게 변경하면 기본 ' before_script'도 아무 작업도 수행하지 않으므로 해당 재정의 지시문도 제거하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.