Astro Hub

DevOps / 12.CI_AzureArtifact

프로젝트: astro-sub1

원본 경로: 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 포탈 접속 방법

  1. Azure Portal > "Azure DevOps organizations" 서비스 검색 > "My Azure DevOps Organizations" 클릭

  2. Azure DevOps Organizations > dev.azure.com/ktdscommon > "common" Projects 클릭

  3. common Project 내 Artifact Feed 클릭 alt text

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/

프로젝트 홈으로 돌아가기