PHP의 지속적인 통합
간단한 항목
면책 성명: 불법 행위를 용서하지 않겠습니다... 그러나 연구 목적으로 SynologyDownload Manager을 위해 사용자 정의 검색 모듈을 만들었습니다. 공교롭게도 PHP가 필요합니다.따라서 synology-dlm-rarbg 프로젝트.분명히 여기에는 Laravel이나Symfony의 참여가 없지만, 나는 더욱 후속적인 프로젝트에서 이러한 개념들이 변하지 않을 것이라고 믿고 싶다.
마카토이사 / 날씨학dlmrarbg
Synology 다운로드 관리자용 RarBG 검색 모듈
이 프로젝트의 주요 내용은 다음과 같습니다.
The build file (
build.xml
). The script file
build.bat
는 로컬에서 파일 생성을 수행하는 데 도움이 됩니다.The CI configuration file (
.travis.yml
). 파일 생성
내가 최근에 이 기술의 경험이 부족하다는 것을 감안하면 처음에는 PHP 소프트웨어 개발의 현황이 좀 걱정되었다.그러나 결과는 의외로 상당히 좋았다. Composer 중에서 좋은 의존 관계 관리자를 찾을 수 있었고, Phing 중에서 아주 좋은 구축 도구를 찾을 수 있었다.그것은 구식Apache Ant을 바탕으로 하기 때문에 같은 단점이 존재할 수 있다.그러나 처음처럼: 이 도구를 존중하면 (그것을 이해하는 것 포함) 잘 할 수 있다.
Phing 그렇습니다.
build.xml
파일은 다음과 같은 목표를 정의합니다.정리: 생성
tmp\
디렉터리를 정리합니다.구축: 원본 코드에서 실행PHPLint하고 원본 코드와 의존항을
tmp\out\bin
폴더에 복사합니다.테스트: PHPUnit를 사용하여 테스트를 수행합니다.
패키지: 검색 모듈에 패키지를 만듭니다. (원본 코드와 의존 항목의 압축 파일입니다.)
재구성: 조합을 정리하고 생성하는 단축키입니다.
발표: 정리, 생성, 포장 조합의 단축키.
dlm\build.xml
을 만들었고 첫 번째 호출을 했습니다.분명히 나는 지금 왜 그런지 기억이 나지 않지만, 나는 이것이 같은 프로젝트에서 여러 개의 검색 모듈을 포장할 가능성과 관련이 있다고 생각한다.어쨌든, 그러면 어떻게 다른 생성 파일을 호출합니까?단순성:<target name="test" depends="prepare.build">
<phing phingfile="build.xml" dir="./dlm" target="test" inheritAll="true" haltonfailure="true" />
</target>
테스트 목표는 테스트 파일에서 실행해야 합니다PHPUnit. 그 전에 의존 항목을 정확하게 다운로드해야 합니다(사용 Composer.<target name="test" depends="test.prepare">
<phpunit printsummary="true" bootstrap="vendor/autoload.php" haltonerror="true" haltonfailure="true">
<formatter type="plain" usefile="false" />
<batchtest>
<fileset dir="./tests">
<include name="**/*Test*.php"/>
</fileset>
</batchtest>
</phpunit>
</target>
<target name="test.prepare">
<composer command="update" composer="bin/composer.phar">
<arg value="-q" />
<arg value="-n" />
</composer>
</target>
이 프로젝트의 관건은 Download Manager 원하는 형식으로 검색 모듈을 포장할 수 있다는 것이다. 이것은 a PDF document downloadable somewhere on the Synology website 에서 설명하였다.나는 영원히 어떻게 된 일인지 기억하지 못하지만, 현재Phing에서 이 점을 묘사하였는데, 이것은 매우 간단한 것 같다.<target name="package" depends="package.prepare,build">
<tar destfile="tmp/out/bin/mcartoixa_rarbg.dlm" compression="gzip">
<fileset dir="tmp/bin/dlm">
<include name=" **/**" />
<exclude name="composer.*" />
</fileset>
</tar>
</target>
스크립트 파일
스크립트 파일
build.bat
의 요점은 설치 의존 항목만 포함하고 Phing 구축을 실행하는 것입니다.CALL .\bin\composer.bat install -q -n
CALL .\vendor\bin\phing.bat -f %PROJECT% %TARGET%
보시다시피 Composer 자체는 PHAR 저장소에 보관됩니다.나는 본래 선택할 수 있었다 to download it instead.여기서 관건은 저장소가 이미 개발을 진행할 준비가 되어 있다는 것이다. 설정할 필요가 없다.CI 구성 파일
어떤 이유로든 저는 Travis CI 를 지속적인 통합 플랫폼으로 다시 선택했습니다. 그 구성은 간단합니다.
install:
- php bin/composer.phar install -n
script:
- vendor/bin/phing -f build.xml prepare.version release
더욱 완전한 항목
여기는 아무것도 없어요(평소처럼?),그러나 나는 위에서 이미 적당한 기초를 다졌다고 생각한다.모든 기술과 마찬가지로 구축 도구를 깊이 연구하고 이해하며 잠재력을 충분히 이용하는 것이 중요하다.예를 들어 Phing와Apache Ant가 유사하면 (예를 들어 FileLists를 이해하는 것이 중요하다.
그 밖에 저는 모든 의존항을 전체적으로 설치하는 것이 아니라 로컬에 설치하는 경향이 있습니다. (구축의 일부분으로 FileSet 같은 프레임워크를 포함합니다.)이것은 모든 사람(당신의 지속적인 통합 플랫폼 포함)이 일치 처리
%PATH%
를 쉽게 하고 서로 다른 프로젝트(심지어 지점)에서 서로 다른 버전을 사용하기 쉽게 합니다.
Reference
이 문제에 관하여(PHP의 지속적인 통합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mcartoixa/continuous-integration-for-php-1nkc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)