2021년 12주차 - 이번 주에 배운 팁
Azure 파이프라인에서 git 태그를 만듭니다.
Azure DevOps에 저장된 리포지토리에 대한 git 태그 생성은 로컬 리포지토리에서 태그를 생성하고 Azure DevOps로 푸시하거나 Azure DevOps의
Tags
페이지에서 수동으로 생성하여 매우 쉽게 수행할 수 있습니다. 그렇다면 왜 애저 파이프라인에서 태그를 생성해야 할까요?수동으로 작업을 수행하면 오류가 발생하기 쉽고 시간이 걸리므로 반복 작업의 경우 자동화하는 것이 좋습니다. 그리고 Azure Pipelines는 특히 코드 빌드 또는 배포와 관련된 작업을 자동화하는 데 탁월합니다. 우리 팀에서 우리가 원했던 것은 CI/CD 파이프라인이 우리가 빌드하고 있는 코드의 버전을 계산하고 해당 버전으로 빌드된 커밋에 자동으로 태그를 지정하는 것이었습니다.
Azure 파이프라인에서 버전을 계산하는 것은 여기서 주제가 아니므로 variables and the counter expression 또는 gitversion task 을 사용하는 것과 같이 여러 가지 방법이 있다고 가정해 보겠습니다.
버전을 알게 되면 스크립트 작업에서 git 명령줄을 사용하여 태그를 생성하고 푸시할 수 있습니다.
- script: |
git tag $(VersionPreviouslyComputed)
git push origin $(VersionPreviouslyComputed)
displayName: Tag version
workingDirectory: $(Build.SourcesDirectory)
이 스크립트가 작동하려면 파이프라인을 실행하는 ID가 리포지토리에 태그를 푸시할 권한이 있는지 확인해야 합니다. 구체적으로 here에 설명된 대로
contribute
라는 사용자에게 Project Collection Build Service ({your organization})
권한을 부여해야 합니다.또한 파이프라인 시작 부분에 추가 체크아웃 작업을 추가해야 합니다. 기본적으로 이 작업을 추가할 필요가 없으며 파이프라인이 자동으로 체크아웃을 수행합니다. 그러나 이 경우 파이프라인의 다음 다른 git 작업에서 초기 체크아웃에 사용된 동일한 자격 증명을 재사용하기 위해 매개변수
persistsCredentials
를 true로 설정하려고 합니다.- checkout: self
persistCredentials: true
Microsoft 호스팅 에이전트가 아니라 자체 온프레미스 에이전트를 사용하는 경우 파이프라인에서 생성된 태그를 삭제할 때 문제가 발생할 수 있습니다. 실제로 온프레미스 에이전트의 로컬 리포지토리에 있는 태그는 자동으로 가져오고 정리되지 않으므로 로컬에 여전히 존재하는 태그를 만들려고 하면 다음 빌드가 실패할 수 있습니다(원격 리포지토리에 없는 경우에도). 이를 방지하기 위해 스크립트에 다음 명령을 추가할 수 있습니다
git fetch origin refs/tags/*:refs/tags/* --prune
.Application Insights의 로그에 있는 애플리케이션 버전
Azure에서 애플리케이션을 개발할 때 Application Insights는 이러한 애플리케이션을 모니터링하는 핵심 구성 요소입니다. 그러나 많은 구성 요소에 대해 우리는 때때로 그것을 최대한 활용하는 방법을 모릅니다. 이번 주에 한 동료가 제가 몰랐던 매우 기본적인 기능에 대해 말했습니다. Application Insights의 로그에는 로그를 보내는 애플리케이션의 버전이 포함되어 있습니다. 실제로 각 로그에는 애플리케이션의 버전 번호가 있는 속성
application_Version
이 있습니다.그다지 흥미롭지 않게 보일 수 있지만 Log Analytics 쿼리에서 로그를 특정 버전으로 필터링하기 위해 이를 사용하면 정말 유용할 수 있습니다.
한 가지 유의할 점은 기본적으로 Application Insights는
AssemblyVersion
속성에서 application_Version
를 설정한다는 것입니다. 따라서 기본적으로 유지하는 경우 애플리케이션 코드를 빌드할 때 올바른 버전 번호로 AssemblyVersion
를 설정하는 것을 잊지 마십시오. Azure Pipelines에서는 다음과 같이 수행할 수 있습니다.- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
arguments: -p:AssemblyVersion=$(VersionPreviouslyComputed)
이번 주는 여기까지입니다. 즐거운 학습 되세요!
Reference
이 문제에 관하여(2021년 12주차 - 이번 주에 배운 팁), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/techwatching/week-12-2021-tips-i-learned-this-week-4nj0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)