다음을 통해 공유


Azure Pipelines를 사용하여 Cargo 패키지 게시

Azure DevOps Services | Azure DevOps Server 2022

Azure Pipelines를 사용하면 개발자가 Azure Artifacts 피드 및 공용 레지스트리(예: Crates.io)에 Cargo 패키지를 게시할 수 있습니다. 이 문서에서는 YAML 및 클래식 파이프라인을 모두 사용하여 Azure Artifacts 피드에 Cargo 패키지를 게시하는 방법을 알아봅니다.

필수 조건

피드를 사용하여 인증

  1. Azure DevOps 조직에 로그인한 다음 프로젝트로 이동합니다.

  2. 아티팩트 및 피드를 선택합니다.

  3. 피드할 연결을 선택한 다음 왼쪽 창에서 Cargo를 선택합니다.

  4. 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>"
      
  5. 패키징>개인 액세스 토큰을 만들어 피드로 인증합니다.

  1. Azure DevOps 조직에 로그인한 다음 프로젝트로 이동합니다.

  2. 파이프라인을 선택하고 나서 파이프라인 정의를 선택합니다.

  3. 편집을 선택한 다음 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"
    

피드에 크레이트 게시하기

  1. Azure DevOps 조직에 로그인한 다음 프로젝트로 이동합니다.

  2. 파이프라인을 선택하고, 그러고 나서 파이프라인 정의를 선택하세요.

  3. 편집을 선택한 다음 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

파이프라인 실행이 완료되면 아래와 같이 피드에서 상자를 사용할 수 있어야 합니다.

피드에 게시된 hello-world-cargo 상자를 보여 주는 스크린샷.