GitLab からの移行
このページの内容
このドキュメントでは、GitLab から CircleCI に移行する方法を概説します。
ImagineX Consulting からのヒント |
GitLab アカウントでの登録
CircleCI のユーザー登録 のページに記載されている手順で GitLab アカウントと CircleCI を接続し、以下の内容に従って CI/CD 設定を CircleCI に移行します。
ビルドの設定
GitLab の CI/CD を使用している場合は、ビルドの設定を移行する必要があります。 GitLab では、ビルドの設定は、ソースコードリポジトリのルートディレクトリにある .gitlab-ci.yml
というファイルで定義します。 ビルドの実行にシェルスクリプトを使用している場合は、CircleCI でそのスクリプトを再利用することができます。
まず、CircleCI のビルド設定ファイルを作成します。 ソースコードリポジトリのルートディレクトリに、.circleci
というフォルダを作成し、その中に config.yml
という名前のファイルを作成します。 次に、CircleCI のドキュメント ( こちら ) に沿って、 .config.yml
ファイルの設定方法を確認します。
GitLab と CircleCI の設定は異なります。 ビルドステップを変換する際は、GitLabと CircleCI の両方のリファレンスドキュメントを並べて開いておくことをお勧めします。
設定の比較
Docker実行環境を使用する場合は、イメージ・レジストリ(image registries)から Docker プルを認証することを推奨します。 認証されたプルでは、プライベートな Docker イメージにアクセスすることができ、レジストリのプロバイダによっては、より高いレート制限が付与される場合もあります。 詳細は、 Docker の認証付きプルの使用 を参照して下さい。 |
GitLab | CircleCI |
---|---|
1つのビルドステップを実行するジョブの定義 | |
| [source, yaml] ---- jobs: job1: steps: - checkout - run: "execute-script-for-job1" ---- |
ジョブに使用するDocker イメージの指定 | |
| [source, yaml] ---- jobs: job1: docker: - image: node:10 ---- |
マルチステージのビルドパイプラインの定義: ジョブ 1 と ジョブ 2 を同時に実行します。 完了すると、ジョブ 3 を実行します。 ジョブ 3 が完了すると、ジョブ 4 を実行します。 | |
| [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 ---- |
マルチプラットフォームでのジョブの実行: GitLab では、タグを使ってビルドエージェントを識別します。 CircleCI では主要な OS と Docker はすべてサポートしており、設定で明示的に定義する必要があります。 詳しくは、 実行環境に関するドキュメント をご覧ください。 | |
| [source, yaml] ---- jobs: ubuntu-job: 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 ubuntu-2004:current steps: - checkout - run: echo "Hello, $USER!" osx-job: macos: xcode: 14.2.0 steps: - checkout - run: echo "Hello, $USER!" ---- |
依存関係のキャッシュ | |
| [source, yaml] ---- jobs: test_async: steps: - restore_cache: key: source-v1-{{ checksum "package.json" }} - checkout - run: npm install - save_cache: key: source-v1-{{ checksum "package.json" }} paths: - node_modules - run: node ./specs/start.js ---- |
より大規模で複雑なビルドについては、CircleCI のプラットフォームに慣れるまで、段階的に移行することをお勧めします。 以下の順番での移行をお勧めします。
-
依存関係のインストール、 依存関係のキャッシュ も参照してください。
-
テストコマンドの実行