DevOps / 12.CI_AzureArtifact
프로젝트: astro-test1
원본 경로: operateguide/DevOps/12.CI_AzureArtifact.md
[CI] Azure DevOps Artifact
1. 개요
Azure Artifact를 통한 외부 저장소 패키지를 사용하는 (Proxy) 방법에 대한 가이드.
Artifact Feed를 통해 여러 패키지 (Library, Build Artifact 등) 를 저장/관리/배포 할 수 있는 Container
- Artifact의 내부 저장소는 Blob 스토리지로 구성되어 있으며, 사전에 Runner > Blob 주소로 방화벽 오픈을 해야한다. (방화벽 정책 현황 참조)
2. 접속정보
1) Azure Artifact 포탈 접속 방법
Azure Portal > "Azure DevOps organizations" 서비스 검색 > "My Azure DevOps Organizations" 클릭
Azure DevOps Organizations > dev.azure.com/ktdscommon > "common" Projects 클릭
common Project 내 Artifact Feed 클릭

2) Artifact Feed 접속 정보
Feed의 각 패키지 별 Connection 설정이 상이하며, Artifact의 "Connect to feed" 에서 설정 가이드를 확인할 수 있다.
- 모든 패키지에 대해 ID 와 username 은 "ktdscommon" 으로 통일.
- Password에 해당되는 PAT의 경우, msp_admin@ktds.co.kr 계정의 PAT를 사용한다 (민감정보 excel 참고)
3) 패키지 별 설정 방법
(1) Maven
- pom.xml
<repository>
<id>ktdscommon</id>
<url>https://pkgs.dev.azure.com/ktdscommon/_packaging/ktdscommon/maven/v1</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
- settings.xml
<settings>
<servers>
<server>
<id>ktdscommon</id>
<username>ktdscommon</username>
<password>${env.ARTIFACT_PASSWORD}</password>
</server>
</servers>
<mirrors>
<mirror>
<id>ktdscommon</id>
<mirrorOf>*</mirrorOf>
<url>https://pkgs.dev.azure.com/ktdscommon/_packaging/ktdscommon/maven/v1</url>
</mirror>
</mirrors>
</settings>
# mirror 설정을 통해 지정된 url 의 repository 만 pull 시도 하도록 설정
# github local repo를 통해 패키지/라이브러리 pull 이 필요한 경우, mirrorOf 에 해당 repo 경로를 추가하여 예외처리가 가능하다.
(2) Gradle
- build.gradle
repositories {
maven {
url "https://pkgs.dev.azure.com/ktdscommon/_packaging/ktdscommon/maven/v1"
credentials {
username = "ktdscommon"
password = ${env.ARTIFACT_PASSWORD}
}
authentication {
basic(BasicAuthentication)
}
}
}
- gradle.properties
ktdscommonUsername=ktdscommon
ktdscommonPassword=${env.ARTIFACT_PASSWORD}
(3) PIP
- pip.ini (Windows) / pip.conf (Linux,Mac)
[global]
index-url=https://pkgs.dev.azure.com/ktdscommon/_packaging/ktdscommon/pypi/simple/