2011-08-10 6 views
4

내 조직 및 다양한 제품에 중앙 심볼 서버를 설치하려고합니다. 각 제품에는 야간 빌드뿐만 아니라 "일회용"베타, RC 및 릴리스 빌드가 있습니다.야간 빌드 및 릴리스 빌드를위한 Symbol Store를 유지 관리하기위한 전략

목표는 야간 빌드 심볼을 약 1 개월 동안 유지하는 것입니다. 여기서 사람들이 내부 빌드를 사용하기 때문에 "dogfooding"을 많이하고, 내부에서 가져온 파일을 쉽게 디버깅하고 싶습니다. .. 가능하면 winqual

을 나는 또한 영구적으로 모든 베타, RC를 유지 및 기호를 구축 해제 할 수 있어야합니다

을 많은 연구를하고 후에, 나는 여기에 가장 좋은 방법은 두 개의 기호 서버를 가지고있다 생각 하나 야간 빌드 (이전 ~ 30 빌드가 등록되어 있음) 및 베타, RC 및 릴리스 기호를 영구적으로 저장하는 또 다른 빌드. 제품 및 버전 태그를 사용하여 심볼 스크립트에 빌드 스크립트를 추가합니다. o 제품을 기록하고 번호를 작성하십시오. 빌드가 성공한 후 스크립트는 심볼 서버의 history.txt를 사용하여 삭제되지 않은 가장 오래된 빌드를 식별 한 다음 symstore에서 삭제합니다.

베타, RC 및 릴리스 버전을위한 "one off"빌드의 경우 빌드가 완료되면 설치자 & 설치자로 식별되어 두 번째 심볼 서버에 추가됩니다 (영구 저장 장치 용).).

그래서 몇 가지 질문이 있습니다.이 모든 것이 합리적으로 보입니까? 이 작업을 쉽게 수행 할 수있는 방법이 있어야합니다. 심볼 서버가있는 대부분의 조직에서는이 문제를 해결할 필요가 없습니까?

둘째,이 접근법을 계속 진행하려면 서버에 등록 된 가장 오래된 알려진 심볼 세트를 식별하는 어리석은 방법이 있습니까? 나는 마지막으로 수정 한 날짜를 사용하는 방법에 대해 생각해 보았지만 history.txt가 가장 적절하지만 오류가 발생하기 쉬운 스크립트 파싱이 가장 적절하다고 판단됩니다. 제품 번호가 & 인 버전 정보를 추가하고 제품 번호 & 버전 정보를 삭제하는 것이 가능할 것으로 기대하고있었습니다.

미리 도움을 청하십시오. 누군가가 가지고 있을지도 모르는 질문에 기꺼이 대답하거나 설명을 제공 할 것입니다.

답변

2

다음 작업을 수행하는 모든 빌드에서 실행되는 Wise Script에서 위젯을 작성했습니다. 우리의 버전을 가정

1.0.1.0 1.0.6.0 기호는 저장소에 추가를 통해

1) 1.0.1.0 (5 개 실행)

2) 빌드가있을 때마다, 상징이다 상점 내역 파일이 구문 분석됩니다.

3.) 1.0.7.0이 빌드되고 심볼이 추가되면 심볼 저장소에서 1.0.1.0 심볼이 삭제됩니다.

나는 기본적으로 버전 번호를 구문 분석하고있어 제 3의 장소는 전류보다 5 개 이상 작은 경우, 내가 트랜잭션 ID를 구문 분석하고 symstore.exe 델 실행/난 % TRANS_ID %

는이 프 i (prune) 내 일일/CI에 대한 기호는 마지막 5 개의 기호 만 작성합니다.

릴리스, 핫픽스, 패치 등과 같은 주목할만한 상징 ...나는 단순히 제품 이름을 바꾸고 기호를 수동으로 추가한다 ... 그런 식으로, 나는 일기 만 잘라 낸다.

원하는 경우 여기에 코드를 잘라내어 SMS 설치 코드로 붙여 넣을 수 있습니다 (와이즈와 동일). 나는 또한 내 지역 아카이브 5를 깊게 만드는 비슷한 위젯을 썼다. 그렇게하면 CI 빌드를위한 로컬 아카이브를위한 공간을 낭비하지 않습니다. 둘 다 사용하지만 둘 중 하나를 사용할 수 있습니다. 둘 다 런타임 탐색을 위해 간단한 .INI 파일을 사용합니다. 그렇게하면 Jenkins/Jobs/폴더에 파일을 둘 수 있고 각각에 대해 .INI 파일을 편집 할 수 있습니다. 그들은 .EXE가 archive_prunerator의 경우 161K이고 symstore_widget의 경우 161이고 4 또는 5 행의 .INI 파일이므로 매우 가벼운 것입니다.

AJ

관련 문제