Azure Pipelines를 사용하여 Cargo 패키지 게시
Azure DevOps Services | Azure DevOps Server 2022
Azure Pipelines를 사용하면 개발자가 Azure Artifacts 피드 및 공용 레지스트리(예: Crates.io)에 Cargo 패키지를 게시할 수 있습니다. 이 문서에서는 YAML 및 클래식 파이프라인을 모두 사용하여 Azure Artifacts 피드에 Cargo 패키지를 게시하는 방법을 알아봅니다.
필수 조건
Azure Artifacts 피드입니다. 피드가 아직 없으면 만드세요.
피드를 사용하여 인증
Azure DevOps 조직에 로그인한 다음 프로젝트로 이동합니다.
아티팩트 및 피드를 선택합니다.
피드할 연결을 선택한 다음 왼쪽 창에서 Cargo를 선택합니다.
Project 설치 섹션에서 제공된 코드 조각을 복사하고 원본 리포지토리의 config.toml 파일에 추가합니다. 파일이 다음과 같이 되어야 합니다.
프로젝트 범위 피드:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
조직 범위 피드:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
패키징>개인 액세스 토큰을 만들어 피드로 인증합니다.
Azure DevOps 조직에 로그인한 다음 프로젝트로 이동합니다.
파이프라인을 선택하고 나서 파이프라인 정의를 선택합니다.
편집을 선택한 다음 YAML 파이프라인에 다음 코드 조각을 추가합니다.
- task: CargoAuthenticate@0 displayName: 'Cargo Authenticate' inputs: configFile: '.cargo/config.toml' ## Path to the config.toml file that specifies the registries you want to work with. Select the file, not the folder e.g. "/.cargo/config.toml"
피드에 크레이트 게시하기
Azure DevOps 조직에 로그인한 다음 프로젝트로 이동합니다.
파이프라인을 선택하고, 그러고 나서 파이프라인 정의를 선택하세요.
편집을 선택한 다음 YAML 파이프라인에 다음 코드 조각을 추가합니다.
- powershell: | cargo publish --registry <FEED_NAME> ## Replace the placeholder with your feed name env: SYSTEM_ACCESSTOKEN: $(system.accesstoken)
예시
다음 예제에서는 에이전트에 Rustup을 설치하고, PATH 환경 변수를 구성하고, 프로젝트를 빌드하고, CargoAuthenticate로 인증하고, Azure Artifacts 피드에 게시하는 방법을 보여 줍니다.
trigger:
- main
pool:
vmImage: windows-latest
steps:
- powershell: |
Invoke-WebRequest -Uri https://sh.rustup.rs -OutFile rustup-init.sh
bash .\rustup-init.sh -y
echo "##vso[task.prependpath]$env:USERPROFILE\.cargo\bin"
displayName: Install
- task: CargoAuthenticate@0
displayName: 'cargo Authenticate'
inputs:
configFile: '.cargo/config.toml'
- script: |
cargo build --all
displayName: Build
- powershell: |
cargo publish --registry CargoInternalFeed
displayName: Publish
파이프라인 실행이 완료되면 아래와 같이 피드에서 상자를 사용할 수 있어야 합니다.