저는 대부분의 시간에 고독한 개발자이며 주로 PHP 기반의 많은 대규모 프로젝트를 수행하고 있습니다. 코드베이스의 변경 사항을 처리하는 방법을 전문화하고 자동화하고 근본적인 변경없이 팀에서 작업 할 수있는 지속적인 통합 프로세스를 만들고 싶습니다.
내가 지금하고있는 일은 모든 프로젝트에 대해 로컬 테스트 환경이 있다는 것입니다. 각 프로젝트마다 SVN을 사용합니다. 변경 사항은 로컬에서 테스트 한 다음 일반적으로 FTP를 통해 온라인 버전으로 전송됩니다. API 문서는 소스 코드에서 수동으로 생성됩니다. 단위 테스트는 느리게 진행되고 있으며 아직 일상적인 일이 아닙니다.
내가 계획하고있는 "빌드주기"는 다음을 수행합니다.
로컬에서 테스트 한 후 변경 세트가 SVN에 체크인됩니다.
빌드 프로세스를 시작합니다. SVN HEAD 개정판이 체크 아웃되고 필요한 경우 수정되며 업로드 준비가되었습니다.
API 문서는 자동으로 생성됩니다. 기본 템플릿을 사용하여 아직 자세히 설정하지 않은 경우 전체 코드베이스를 스캔합니다.
새로운 개정판은 FTP를 통해 원격 위치에 배포됩니다 (일부 디렉토리 이름 바꾸기, chmodding, 데이터베이스 가져 오기 등 포함). 이것은 이미 phing 을 매우 좋아 하지만 대안을 위해 열려 있습니다.
사전 정의 된 위치에있는 단위 테스트가 실행됩니다. 전자 메일, RSS 또는 웹 페이지에 넣을 수있는 HTML 출력 (바람직하게는)을 사용하여 실패 또는 성공에 대한 정보를 받았습니다.
(선택 사항) 사전 정의 된 위치의 최종 사용자 "changelog"텍스트 파일이 커밋 메시지의 사전 정의 된 부분으로 업데이트됩니다 ( "이제"foo "와"bar "를 모두 동시에 필터링 할 수 있음) 이 메시지는 SVN commit 메시지와 반드시 같을 필요는 없으며, 여기에는 아마도 더 많은 내부 정보가 포함되어있을 것입니다.
코드 메트릭스, 코드 스타일 검사 등과 같은 것들이 현재 제 주요 초점은 아니지만 장기적으로는 확실합니다. 이 즉시 사용 가능한 솔루션은 매우 친절합니다.
내가 찾고 있어요
비슷한 상황에 있거나 비슷한 상황에있는 사람들의 피드백과 경험에 대한 솔루션을 성공적으로 구현했습니다.
특히, 단계별 자습서 및 이를 설정하는 방법에 대한 연습
예를 들어 각각의 새 프로젝트에 대한 스켈레톤 API, 테스트 케이스 등을 작성하여 최대한 많은 자동화 를 제공하는 솔루션 .
그리고 또한
- 제품 권장 사항 . 내가 지금까지 아는 것은 빌드를위한 phing / ant ,보고 부분을위한 phpUnderControl 또는 Hudson 입니다. 나는 그들이 볼 수있는 한 그들을 모두 좋아하지만, 물론 그들에 대한 자세한 경험은 없다.
나는 일로 늪에 빠졌 으므로 간단한 해결책에 대한 강한 성향을 가지고 있습니다. 반면에 기능이 누락 된 경우 기능이 너무 제한되어 있습니다. :) 포인트 앤 클릭 솔루션도 환영합니다. 또한 PHP 프로젝트와 함께 사용할 수있는 상용 제품 권장 사항도 있습니다.
내 설정
나는 Windows에서 로컬로 (정확히 말하자면 7) 일하고 있으며 대부분의 클라이언트 프로젝트는 LAMP 스택에서 실행되며 종종 공유 호스팅 (= 원격 SSH 없음)에서 실행됩니다. 내 환경에서 실행할 수있는 솔루션을 찾고 있습니다. 이를 위해 Linux VM을 설정할 준비가되었습니다. 문제 없습니다. 호스팅 솔루션은 설명 된 모든 측면을 제공하거나 프로세스의 다른 부분과 상호 작용할 수있을 정도로 융통성이있는 경우에만 유용합니다.
현상금 나는 가장 많은 마일리지를 줄 것이라고 생각하는 대답을 받아들이고 있습니다. 여기에 훌륭한 의견이 많이 있습니다. 하나 이상의 답변을 받아 들일 수 있기를 바랍니다. 모두 감사합니다!