Azure DevOps からの移行
このドキュメントでは、Azure DevOps から CircleCI に移行する方法を概説します。
ImagineX Consulting からのヒント |
ソースコントロールの設定
Azure DevOps のGit レポジトリや TFVC レポジトリを使用している場合は、まずソースコードを GitHub または Bitbucket に移行する必要があります。 Azure DevOps の Git リポジトリについては、下記のリンクより GitHub や Bitbucket にインポートする方法をご確認ください。
TFVC リポジトリの場合は、git-tfs ツールの使用をお勧めします。 以下は git-tfs ツールおよび使用方法へのリンクです。
GitHub Enterprise
以下は、GitHub のコマンドラインツールを使って GitHub Enterprise にコードをインポートするための手順です。
-
GitHub Enterprise のインスタンスに空のリポジトリを作成します。
-
ローカルマシンに外部リポジトリのベアクローンを作成し、すべてのリモートタグ (refs/tags/*) をフェッチし、すべてのリモートブランチヘッド (refs/heads/\*) を対応するローカルブランチヘッドに直接コピーします。
git clone https://external-host.com/extuser/repo.git --bare
-
ローカルクローンに、GitHub Enterprise リポジトリをリモートリファレンスとして追加します。
cd [repo-name] git remote add enterprise git@[hostname]:[owner]/[repo-name].git
-
すべてのローカルリファレンス(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 DevOps | CircleCI |
---|---|
1つのビルドステップを実行するジョブの定義 | |
| [source, yaml] ---- jobs: job1: steps: - checkout - run: "execute-script-for-job1" ---- |
ジョブに使用する Docker イメージの指定 | |
| [source, yaml] ---- jobs: job1: docker: - image: node:10 auth: username: mydockerhub-user password: $DOCKERHUB_PASSWORD # コンテキスト/プロジェクト UI 環境変数を参照します。 ---- |
マルチステージのビルドパイプラインの定義: ジョブ 1 と ジョブ 2 を同時に実行します。 完了すると、ジョブ 3 を実行します。 ジョブ 3 が完了すると、ジョブ 4 を実行します。 | |
| [source, yaml] ---- 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 を提供しています。 | |
| [source, yaml] ---- 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: 14.2.0 steps: - checkout - run: echo "Hello, $USER!" ---- |
より大規模で複雑なビルドについては、CircleCI のプラットフォームに慣れるまで、段階的に移行することをお勧めします。 以下の順番での移行をお勧めします。
-
シェルスクリプトや Docker-compose ファイルの実行
ドキュメントの改善にご協力ください
このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、 GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。
- このページの編集をご提案ください (最初に「コントリビューションガイド」をご覧ください)。
- ドキュメントの問題点を報告する、またはフィードバックやコメントを送信するには、GitHub で issue を作成してください。
- CircleCI は、ユーザーの皆様の弊社プラットフォームにおけるエクスペリエンスを向上させる方法を常に模索しています。 フィードバックをお寄せいただける場合は、リサーチコミュニティにご参加ください。
サポートが必要ですか
CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。
または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。
CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.