빌드에서 릴리스 트리거
Team Foundation Build를 사용하여 응용 프로그램을 빌드할 때 릴리스를 자동으로 시작합니다. 릴리스 프로세스의 어느 단계로 시작할지 선택할 수 있습니다. 빌드에서 릴리스를 트리거하려면 빌드 프로세스와 릴리스 경로를 둘 다 구성해야 합니다.
릴리스 경로를 아직 만들지 않았다면 여기로 이동하여 만듭니다.
또한 빌드 시스템을 아직 설정하지 않은 경우 지금 수행합니다.
빌드 프로세스 구성
빌드 정의 편집 권한이 없는 경우 지금 받습니다.
Visual Studio, Team Explorer에서 (키보드: Ctrl + 0, C)에서 작업할 팀 프로젝트에 연결합니다.
빌드 페이지(키보드: Ctrl + 0, B)에서 빌드 정의를 만들거나 편집합니다.
빌드 정의의 프로세스 탭에서 이 릴리스에 사용할 구성을 선택합니다(예: 디버그 또는 릴리스). 릴리스 빌드를 True로 설정합니다. 릴리스용으로 트리거할 특정 단계를 선택하거나, 첫 단계부터 시작하려면 이 필드를 비워 둡니다.
릴리스 섹션이 나타나지 않는 경우:
Q: 기본 템플릿을 사용하고 있습니다. Release Management에 어떤 프로세스 템플릿을 사용해야 하고 TFS에 추가하려면 어떻게 해야 합니까?
Q: 업그레이드 템플릿을 사용하고 있습니다. Release Management에 어떤 프로세스 템플릿을 사용해야 합니까?
Q: 사용자 지정 빌드 프로세스 템플릿을 사용하고 있습니다. 릴리스를 트리거하려면 워크플로 논리를 어떻게 추가해야 합니까?
대상 환경에 따라 다른 값이 필요한 구성 파일이 있는 구성 요소가 있으면 구성 파일 토큰화를 할 수 있습니다.
빌드 프로세스에 필요한 다른 설정을 모두 지정한 다음 빌드 정의를 저장합니다.
릴리스 템플릿 구성
빌드 서버에 Visual Studio 2013용 Release Management 클라이언트가 설치되어 있지 않다면 지금 설치합니다. Release Management 클라이언트를 구성하여 Release Management 서버에 연결합니다.
빌드 서버에 클라이언트를 설치한 후 빌드 서비스를 다시 시작합니다. Team Foundation Server 관리 콘솔에서 시작할 수 있습니다.
릴리스 템플릿에서 빌드를 트리거하기 위해 설정한 빌드 정의를 선택하고 확인란을 선택하여 릴리스를 트리거하기 위한 빌드 프로세스를 사용하도록 설정합니다.
빌드 정의 선택이 나타나지 않으면 Release Management 클라이언트에 TFS 연결을 추가해야 합니다. (관리 섹션의 TFS 관리 탭에서 연결을 추가합니다.)
릴리스가 트리거된 후 선택된 스테이지의 단계를 진행합니다. 이 스테이지에 대해 수락 단계 및 배포 단계를 자동화됨으로 설정하지 않으면 릴리스가 시작되지 않습니다. 이러한 단계를 릴리스 경로에서 자동화됨으로 표시해야 합니다.
Q & A
Q: 기본 템플릿을 사용하고 있습니다.Release Management에 어떤 프로세스 템플릿을 사용해야 하고 TFS에 추가하려면 어떻게 해야 합니까?
A: 기본 템플릿을 사용하고 있는 경우 해당 릴리스 관리 프로세스 템플릿으로 교체하기만 하면 됩니다.
파일 제공 또는 빌드 정의 편집 권한이 없는 경우 지금 받습니다.
Visual Studio, Team Explorer에서 (키보드: Ctrl + 0, C)에서 작업할 팀 프로젝트에 연결합니다.
Drive:\Program Files (x86)\ Microsoft Visual Studio 12.0\ReleaseManagement\bin 폴더에서 필요한 템플릿을 찾습니다. 또는 이 블로그 게시물에 연결된 zip 파일에서 이 디렉터리로 템플릿을 다운로드합니다.
TFS 2013
TFVC: ReleaseTfvcTemplate.12.xaml.
Git: ReleaseGitTemplate.12.xaml
TFS 2012: ReleaseDefaultTemplate.11.1.xaml
TFS 2010: ReleaseDefaultTemplate.xaml
템플릿을 버전 컨트롤에 추가합니다. 팀 프로젝트의 BuildProcessTemplates 폴더에 템플릿을 저장하는 것이 좋습니다.
TFVC: 서버에 파일 추가
Git: 개발 컴퓨터에서 파일 관리
빌드 페이지(키보드: Ctrl + 0, B)에서 빌드 정의를 만들거나 편집합니다.
프로세스 탭에서 선택 새로 만들기를 선택하여 빌드 프로세스 파일에 사용할 템플릿을 선택합니다. (찾아보기로 방금 추가한 템플릿을 선택할 수 있어야 합니다.)
Q: 사용자 지정 빌드 프로세스 템플릿을 사용하고 있습니다.릴리스를 트리거하려면 워크플로 논리를 어떻게 추가해야 합니까?
A: 워크플로 논리를 제공하려면 섹션을 사용자 지정 프로세스 템플릿에 추가합니다. 여기에서 이러한 섹션으로 조각 파일을 다운로드합니다. ConfigurationsToRelease, ReleaseBuild, ReleaseTargetStage, DropBuild와 같은 조각을 사용하여 이러한 인수를 빌드 프로세스 템플릿에 추가합니다.
빌드 프로세스 템플릿을 저장합니다. Team Foundation 버전 컨트롤을 사용하면 체크 인합니다. Git를 사용하면 빌드 프로세스 템플릿을 커밋하고 푸시합니다.
Q: 업그레이드 템플릿을 사용하고 있습니다.Release Management에 어떤 프로세스 템플릿을 사용해야 합니까?
A: 여기에서 해야 할 일을 배웁니다.
Q: 다른 컴퓨터에 응용 프로그램의 구성 요소를 배포할 수 있습니까?
A: 예, Release Management 클라이언트를 통해 구성 요소를 만들고 릴리스 템플릿에 추가합니다.
그 다음 이러한 구성 요소를 빌드에 추가할 수 있습니다.
구성 요소 창이 표시되면 추가할 구성 요소를 두 번 클릭합니다.
추가하는 각 구성 요소는 응용 프로그램을 포함한 빌드 또는 외부에서 빌드로 구성해야 합니다.
빌드 저장 위치의 **'\'**는 빌드가 저장 폴더의 루트에 있음을 나타냅니다.
Q: 구성 요소를 배포하는 데 어떤 도구를 사용할 수 있습니까?
A: 정의하는 각 구성 요소에 대해 배포 탭에서 사용할 도구를 선택할 수 있습니다. 각 도구에 대한 자세한 내용은 여기를 참조하십시오.
인수를 이 구성 요소 배포 관련 정보로 바꿉니다.
사용자 지정 도구를 사용하려면 먼저 인벤토리 페이지를 통해 도구를 추가한 다음 배포 탭에서 선택합니다.
배포 시에 패키지 위치에서 해당 명령으로 참조되는 모든 파일을 사용할 수 있는지 확인해야 합니다.
Q: 릴리스가 시작되지 않은 이유는 무엇입니까?
다음과 같은 문제가 있을 수 있습니다.
빌드를 구성하여 릴리스를 트리거하고(릴리스 빌드=True) 릴리스 템플릿에 대해 빌드에서 릴리스를 트리거할 수 있습니까? 확인란을 선택하지 않은 경우 이렇게 하면 실제로 빌드가 실패하므로 릴리스가 시작되지도 않습니다.
릴리스 템플릿을 구성하여 릴리스(릴리스 빌드=False)를 트리거하도록 설정되지 않은 빌드 정의를 사용하거나 올바른 릴리스 논리를 포함하지 않는 경우
릴리스 템플릿이 독립적으로 빌드하도록 구성된 모든 구성 요소를 포함하는 경우
릴리스에서 트리거하도록 선택한 스테이지에 대해 수락 단계 및 배포 단계를 자동화됨으로 설정하지 않으면 릴리스가 시작되지 않습니다. 이러한 단계가 이 릴리스 경로에 대해 자동화되도록 설정해야 합니다.
Team Foundation Build 서버에서 실행되는 컴퓨터에 Release Management 클라이언트를 설치하지 않은 경우
배포 완료에 소요되는 시간이 10분을 초과하는 경우 관리 탭, 설정 페이지에서 TFS에서 트리거한 배포의 제한 시간에 할당된 값을 변경할 수 있습니다.
Q: 대상 환경에 따라 다른 값이 필요한 구성 파일을 처리하려면 어떻게 해야 합니까?
A: 토큰화된 구성 파일을 사용합니다.
다양한 환경에서 다른 값이 필요한 솔루션의 각 구성 파일에 대해 해당 파일의 토큰화된 버전을 만듭니다.
예를 들어, 솔루션에 web.config라는 레이블이 지정된 파일이 있으면 해당 파일을 복사하고 web.config.token이라는 레이블을 지정합니다. web.config 파일은 변경되지 않고 응용 프로그램을 로컬로 실행할 때 사용됩니다. web.config.token 파일에는 실제 값 대신 토큰이 포함되어 있습니다.
예를 들어 web.config 파일에 다음 줄이 포함되어 있을 경우,
<add key="SMTPHostServer" value="mysmtp.myserver.domain"/>
web.config.token 파일에는 이 줄이 포함되고 여기에서 SMTPHostServer는 토큰입니다.
<add key="SMTPHostServer" value="SMTPHostServer"/>
로컬 파일과 토큰화된 파일의 동기화를 유지합니다.
Q: 토큰을 변수로 바꾸기 위해 어떤 파일을 스캔해야 하는지 정의하려면 어떻게 해야 합니까?
A: 정의하는 각 구성 요소에 대해 구성 변수 탭에서 파일 확장 필터를 지정할 수 있습니다.
구성 요소에 지정한 배포 에이전트는 패턴 일치를 사용하여 토큰을 변수로 바꿔야 하는 파일 집합을 스캔합니다. 두 개 이상의 파일 확장명은 세미콜론(;)을 사용하여 분리합니다.