ドキュメント
circleci.com
Start Building for Free

Azure DevOps からの移行

2 weeks ago1 min read
クラウド
Server 3.x
On This Page

このドキュメントでは、Azure DevOps から CircleCI に移行する方法を概説します。

ソースコントロールの設定

Azure DevOps のGit レポジトリや TFVC レポジトリを使用している場合は、まずソースコードを GitHub または Bitbucket に移行する必要があります。 Azure DevOps の Git リポジトリについては、下記のリンクより GitHub や Bitbucket にインポートする方法をご確認ください。

TFVC リポジトリの場合は、git-tfs ツールの使用をお勧めします。 以下は git-tfs ツールおよび使用方法へのリンクです。

GitHub Enterprise

以下は、GitHub のコマンドラインツールを使って GitHub Enterprise にコードをインポートするための手順です。

  1. GitHub Enterprise のインスタンスに空のリポジトリを作成します。

  2. ローカルマシンに外部リポジトリのベアクローンを作成し、すべてのリモートタグ (refs/tags/*) をフェッチし、すべてのリモートブランチヘッド (refs/heads/\*) を対応するローカルブランチヘッドに直接コピーします。

    git clone https://external-host.com/extuser/repo.git --bare
  3. ローカルクローンに、GitHub Enterprise リポジトリをリモートリファレンスとして追加します。

    cd [repo-name]
    git remote add enterprise git@[hostname]:[owner]/[repo-name].git
  4. すべてのローカルリファレンス(refs/*)を、リモートの GitHub Enterprise リポジトリにプッシュします。

    git push enterprise --mirror

他の Azure DevOps のアーティファクトをエクスポートする必要がある場合は、ほぼすべてのデータを Excel のスプレッドシートにダウンロードすることができます。 プロジェクトデータに関する Azure DevOps のドキュメントをご覧ください。

コードを GitHub または Bitbucket にインポートしたら、 入門ガイド に従って CircleCI 上でのプロジェクト作成を開始することができます。

ビルドの設定

Azure DevOps Pipelines や TFS Build and Release を使用している場合は、ビルドの設定を移行する必要があります。 Azure DevOps Pipelines では、ソースコードリポジトリのルートディレクトリにある azure-pipelines.yml というファイルでビルド設定が定義されています。 TFS Build and Release の場合は Web インターフェイスで行われ、json ファイルにエクスポートすることができます。 どちらの場合もビルドの実行にシェルスクリプトを使用していれば、CircleCI でそのスクリプトを再利用することができます。

まず、CircleCI のビルド設定ファイルを作成します。 ソースコードリポジトリのルートディレクトリに、.circleci というフォルダを作成し、その中に config.yml という名前のファイルを作成します。 次に、こちらの CircleCI のドキュメントに従い、 config.yml ファイルの設定方法を確認します。

Azure DevOps Pipelines と CircleCI の設定は異なります。 ビルドステップを変換する際は、Azure DevOps と CircleCI の両方のリファレンスドキュメントを並べて開いておくことをお勧めします。

設定の比較

Azure DevOpsCircleCI

1つのビルドステップを実行するジョブの定義

jobs:
  - job: job1
    steps:
      - script: chmod +x ./script.sh
      - script: ./script.sh
jobs:
  job1:
    steps:
      - checkout
      - run: "execute-script-for-job1"

ジョブに使用する Docker イメージの指定

jobs:
  - job: job1
    container:
      image: node:10
jobs:
  job1:
    docker:
      - image: node:10
        auth:
          username: mydockerhub-user
          password: $DOCKERHUB_PASSWORD  # コンテキスト/プロジェクト UI 環境変数を参照します。

マルチステージのビルドパイプラインの定義: ジョブ 1 と ジョブ 2 を同時に実行します。 完了すると、ジョブ 3 を実行します。 ジョブ 3 が完了すると、ジョブ 4 を実行します。

stages:
  - stage: build
    jobs:
    - job: job1
      steps:
        - script: make build dependencies
    - job: job2
      steps:
        - script: make build artifacts
  - stage: test
    jobs:
    - job: job3
      steps:
        - script: make test
  - stage: deploy
    jobs:
    - job: job4
      steps:
        - script: make deploy
version: 2
jobs:
  job1:
    steps:
      - checkout
      - run: make build dependencies
  job2:
    steps:
      - run: make build artifacts
  job3:
    steps:
      - run: make test
  job4:
    steps:
      - run: make deploy

workflows:
  version: 2
  jobs:
    - job1
    - job2
    - job3:
        requires:
          - job1
          - job2
    - job4:
        requires:
          - job3

マルチプラットフォームでのジョブの実行: Azure DevOps では、プールと要求によりビルドランナーを識別します。 CircleCI では、Docker、Linux、MacOS用の Executor を提供しています。

jobs:
  - job: ubuntuJob
    pool:
      vmImage: ubuntu-16.04
    steps:
      - script: echo "Hello, $USER!"
  - job: osxJob
    pool:
      vmImage: macOS-10.14
    steps:
      - script: echo "Hello, $USER!"
jobs:
  ubuntuJob:
    machine:
      # The image uses the current tag, which always points to the most recent
      # supported release. If stability and determinism are crucial for your CI
      # pipeline, use a release date tag with your image, e.g. ubuntu-2004:202201-02
      image: ubuntu-2004:current
    steps:
      - checkout
      - run: echo "Hello, $USER!"
  osxJob:
    macos:
      xcode: 12.5.1
    steps:
      - checkout
      - run: echo "Hello, $USER!"

より大規模で複雑なビルドについては、CircleCI のプラットフォームに慣れるまで、段階的に移行することをお勧めします。 以下の順番での移行をお勧めします。


ドキュメントの改善にご協力ください

このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、 GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。

サポートが必要ですか

CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。

または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。