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)



이번 주는 여기까지입니다. 즐거운 학습 되세요!

좋은 웹페이지 즐겨찾기