2013-07-18 2 views
1

Pro Nuget 서적을 다 읽었으며 우리의 의존성을 위해이 방법을 사용하는 것이 현재 방법보다 낫다고 생각합니다. 또한 응용 프로그램 배포 패키지를 빌드하여 빌드를 다양한 환경에 배포 할 수 있습니다.너겟 피드 및 프로모션

아이디어 중 하나는 여러 가지 Nuget 피드를 갖는 것입니다. 모든 성공적인 통합이 패키지를 게시하는 ci 피드, 테스트 할 qa 버전 만 공개 한 qa 피드, 그리고 성공적으로 테스트 한 qa 피드의 패키지 만 복사하는 릴리스 피드가 있습니다.

저는이 아이디어가 마음에 들지만, ci 빌드가 -alphaXXXX 또는 그와 유사한 버전으로 끝나는 시험판으로 표시되도록하는 것이 좋습니다. 그래도 저도 그렇다면 홍보하는 동안 해당 지정을 qa 피드로 가져와야합니다. Nuget 패키지의 매력 중 일부는 패키지를 수정해야만한다고 생각합니다. 한번 빌드하면 변경되지 않습니다.

또 다른 아이디어는 우리가 주로 트렁크에서 작업하기 때문에 rc branch를 사용하면 빌드 프로세스가 버전의 시험판 부분을 더 이상 추가하지 않게됩니다. 그게 효과가있는 것 같아요, 그리고 피드를 공개하기 위해 qa에서 홍보하는 것은 간단한 패키지 사본이 될 것입니다.

누구나이 접근법을 수행하고 있으며 권장 접근법입니까? 내가 놓친 게 있니? 내가 봤지만 닌자 같은 접근 방식의 세부 사항에 대한 많은 토론을 발견했습니다.

답변

2

저는이 책의 저자 중 한 명입니다. 우리는 많은 새로운 컨텐츠로 두 번째 에디션을 만들고 있습니다.이 특별한 경우도 다루어지고 있습니다.

그냥의 CI를 명확히하기 위해 -> QA -> 생산성 시나리오가 패키지 프로모션 흐름으로 설정 : 당신이 당신의 자신을 만들 수 있습니다 당신이 좋아하는 경우에.

요점은 정확합니다. 패키지 프로모션에는 패키지 나 패키지 내용물을 수정할 필요가 없습니다. 이는 다른 피드로 패키지를 승격 할 때 패키지 내부의 바이너리를 다시 빌드하지 않는다는 것을 의미합니다. 이 규칙의 유일한 예외는 조정 또는 제거 할 수있는 패키지 시험판 버전입니다. 참고 : 시맨틱 버전은 홍보 할 때 동일하게 유지되어야합니다!

이것은 http://www.MyGet.org의 핵심 기능입니다. http://docs.myget.org/docs/reference/package-sources (시나리오 : 푸시 패키지 업스트림)에 대한 설명서가 있습니다.

위의 원칙이이 기능에 적용되며 피드 보안/API 키도 처리합니다. MyGet을 사용하지 않으면 직접해야합니다. 논리적 단계는 다음과 같습니다

  1. 다운로드
  2. 선택적으로 시험판 태그를 변경 소스 공급에서 패키지
  3. 푸시 대상 공급

많은 오픈 소스 프로젝트에 패키지 (수동?) MyGet.org에서 CI 피드를 사용한 다음 NuGet.org로 업스트림을 밀어 넣어이 시나리오를 사용하고 있습니다. 업스트림 패키지 소스는 다른 NuGet 피드 (예 : Chocolatey.org 갤러리, Resharper 플러그인 갤러리, 다른 MyGet.org 피드 ...) 일 수 있습니다.

+0

나는 책을 크게 즐겼다. 주어진 아이디어는 우리의 현재 프로세스를 개선하기 위해 실험하기를 희망한다. 공개 할 CI가 예라고 생각하지만 잘 될 것이라고 생각합니다.후속 질문으로, 내가 qa를 요구하는 내 앱이 앱과 항상 같은 시간에 배송되는 비즈니스 로직 계층을 포함하는 다른 패키지에 달려 있다고 가정 해 보겠습니다. 재귀 적으로 앱 의존성을 홍보해야한다고 가정합니다 (베타 타사 라이브러리는 사용하지 않습니다). 나는 제 2 판을 고대합니다! – Andy

+1

좋아요! 네, 패키지의 의존성을 함께 공개한다면 패키지의 의존성을 홍보해야합니다. –

+0

@XavierDecoster는 # 2 작동 방식을 명확히 할 수 있습니까? MyGet이 아니라 VSTS에서이 흐름을 설정하려고합니다. 패키지에서 시험판 태그를 제거하기 위해 지원되는 명령이 있습니까? 아니면 패키지의 압축을 풀고 nuspec 파일을 수정 한 다음 다시 포장해야합니까? 이것을 위해 내장 된 nuget 명령이있는 것처럼 보입니다. –