無料でビルドを開始
CircleCI.comアカデミーブログコミュニティサポート

Buildkite からの移行

11 months ago1 min read
クラウド
Server 3.x
このページの内容

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

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

まず、ソースコードが GitHub または Bitbucket に置かれていることを確認してください。 コードのインポート方法の詳細については、以下をご参照ください。

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

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

ビルドの設定

次に、ビルドの設定を移行する必要があります。 Buildkite では、ビルドの設定は、Web インターフェイスで定義するか、ソースコードリポジトリのルートディレクトリにある .pipeline.yml というファイルで定義します。 ビルドの実行にシェルスクリプトを使用している場合は、CircleCI でそのスクリプトを再利用することができます。

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

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

設定の比較

BuildkiteCircleCI

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

steps:
  - command: 'execute-script-for-job1.sh'

[source, yaml] ---- jobs: job1: steps: - checkout - run: "execute-script-for-job1" ----

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

steps:
  - label: 'job1'
    plugins:
      - docker#v3.2.0:
          image: 'node:10'

[source, yaml] ---- jobs: job1: docker: - image: node:10

----

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

steps:
  - label: 'job1'
    command: 'make build dependencies'

  - label: 'job2'
    command: 'make build artifacts'

  - wait

  - label: 'job3'
    command: 'make test'

  - wait

  - label: 'job4'
    command: 'make deploy'

[source, yaml] ---- version: 2.1 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: jobs: - job1 - job2 - job3: requires: - job1 - job2 - job4: requires: - job3 ----

マルチプラットフォームでのジョブの実行: Buildkite では、タグを使ってビルドエージェントを識別します。 CircleCI では、Docker、Linux、MacOS用の Executor を提供しています。

steps:
  - label: 'ubuntuJob'
    agents:
      ubuntu: '16.04'
    command: 'echo "Hello, $USER!"'

  - label: 'osxJob'
    agents:
      osx: 'true'
    command: 'echo "Hello, $USER!"'

[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 のプラットフォームに慣れるまで、段階的に移行することをお勧めします。 以下の順番での移行をお勧めします。

  1. シェルスクリプトや Docker Compose ファイルの実行

  2. ワークフロー

  3. アーティファクト

  4. キャッシュ

  5. トリガー

  6. 最適化の概要


Suggest an edit to this page

Make a contribution
Learn how to contribute