로부터 조엘 테스트 :
한 번에 빌드 할 수 있습니까?
나는 할 수 없다고 말해야한다. 현재 배포하기 위해 수행해야하는 항목의 스프레드 시트 목록이있는 웹 앱을 개발 중입니다. 그래서 내 질문은 어떻게 이것을 자동화 할 수 있습니까? 조직 전체에 있어야합니까? 팁 / 기술?
로부터 조엘 테스트 :
한 번에 빌드 할 수 있습니까?
나는 할 수 없다고 말해야한다. 현재 배포하기 위해 수행해야하는 항목의 스프레드 시트 목록이있는 웹 앱을 개발 중입니다. 그래서 내 질문은 어떻게 이것을 자동화 할 수 있습니까? 조직 전체에 있어야합니까? 팁 / 기술?
답변:
Make는 빌드 프로세스를 한 단계로 자동화 할 수 있습니다. Make는 당신이 원하는 것을 거의 할 수 있습니다. 왜 삿포로가 Make가 C / C ++에만 적용된다고 생각하는지 잘 모르겠습니다. make를 사용하여 모든 유형의 명령을 실행할 수 있습니다. 그것은 비록 그것이 일반적으로 사용되는 것이지만 프로그래밍과도 관련이 없습니다.
환경에 따라 Make (C / C ++), Ant / Maven (Java), Gradle (Groovy)을보고 싶을 수도 있습니다. 귀하의 환경에 널리 사용되는 솔루션이있을 가능성이 높습니다.
직장에서는 FinalBuilder 를 사용 하여 코드를 확인하고 모든 것을 빌드하며 테스트를 실행하고 배포 패키지를 만드는 등 전체 프로세스를 자동화하는 스크립트를 쉽게 설정할 수 있습니다.
매우 유용한 도구이며 최근에는 Dr. Dobbs Jolt Award for Change and Configuration Management 도구에서 수상했습니다.
물론 이것을 자동화하는 방법이 있습니다. Chef 와 같은 도구를 사용하면 새로 설치 한 새로운 서버를 쉽게 설치할 수 있습니다.
knife bootstrap ip.address -N aNameForTheServer -r "role[some functionality]"
필자의 경우 단일 명령으로 실행되는 단계는 다음과 같습니다.
Windows 지원이 "예비"로 나열되어 있기 때문에 Chef가 사용자 환경에서 어떻게 수행되는지 잘 모르겠지만 UNIX 기반 시스템의 경우에는 무릎이 꿇습니다.
Puppet 은 셰프보다 약간 오래된 유사한 시스템이며 더 나은 Windows 지원을 제공 할 수 있습니다.
Java 세계에서 Maven을 사용하면 간단합니다.
mvn clean deploy
이 구성에서는 WAR 파일의 모든 필요한 빌드 (필요에 따라 JAR 종속성이 필요함), dev 웹 서버로의 배포 및 dev 데이터베이스에서 미리 준비된 테스트 데이터 작성을 수행합니다. 일단 배치되면 Maven은 SeleniumRC를 통해 포괄적 인 기능 테스트를 처리하여 애플리케이션이 작동하는지 확인합니다.
이 단일 명령은 응용 프로그램을 개발 서버 클러스터에 완전히 배포하므로 다른 개발자가 즉시 테스트 할 수 있다고 가정 할 수 있습니다. 개발자가로 로컬에서 작동하는지 확인했기 때문에 개발자 배포가 실패하는 경우는 드 '니다 mvn clean install
.
그런 다음 스냅 샷 아티팩트 (WAR)가 다른 개발자와 공유하기 위해 Maven 저장소로 복사됩니다 (표준 Maven deploy
동작에 따라).
좋습니다. 그러나 개발 용 스냅 샷 만 배포했습니다. 테스트 및 프로덕션은 어떻습니까?
테스트 및 (나중에) 프로덕션 서버로의 배포는 누군가가 의심스러운 출력을 감시 할 수 있도록 수동으로 처리하려는 Maven 릴리스 프로세스를 통해 처리됩니다. 테스터는 스냅 샷이 아닌 릴리스 된 아티팩트로만 작업합니다.
일단 릴리스되면 간단한 빌드 스크립트를 사용하여 WAR 파일을 테스트 서버 클러스터로 SFTP하고 누군가가 프로세스를 감시하여 문제가 없는지 확인합니다.
마지막으로, 모든 테스터가 만족 한 후에는 변경되지 않은 WAR 파일을 장애 조치 프로덕션 서버 클러스터에 SFTP로 연결하여 재해가 발생했을 때 즉시 눈을 돌리고 즉각적인 롤백 위치를 유지합니다.
나는 Joel 테스트에서 그 중 하나를 확인할 수 있다고 생각했습니다 ...
파이썬으로 빌드 서버를 만들었고 pychron 을 사용하여 자동화했습니다 .
코드는 커맨드 라인에서 VSS와 동기화되었고, borland make로 빌드합니다. (대부분의 IDE는 호출 여부에 관계없이 make 파일을 생성합니다. Delphi는 make 파일을 펌프 아웃하고 .BPG 파일로 호출했습니다. 다시 MSBuild XML 파일을 사용하면 MSBuild를 사용할 수 있음) 오류가 방금 추가 한 XML 파일에 저장되었습니다.
배치 파일을 작성하고이 작업을 수행하십시오.