Start Building for Free
CircleCI.comアカデミーブログコミュニティサポート

GitLab からの移行

クラウド
Server 3.x
このページの内容

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

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 の両方のリファレンスドキュメントを並べて開いておくことをお勧めします。

設定の比較

GitLabCircleCI

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

job1:
  script: "execute-script-for-job1"
jobs:
  job1:
    steps:
      - checkout
      - run: "execute-script-for-job1"

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

job1:
  image: node:10
jobs:
  job1:
    docker:
      - image: node:10
        auth:
          username: mydockerhub-user
          password: $DOCKERHUB_PASSWORD  # context / project UI env-var reference

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

job1:
  stage: build
  script: make build dependencies

job2:
  stage: build
  script: make build artifacts

job3:
  stage: test
  script: make test

job4:
  stage: deploy
  script: make deploy

stages:
  - build
  - test
  - 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

マルチプラットフォームでのジョブの実行: GitLab では、タグを使ってビルドエージェントを識別します。 CircleCI では主要な OS と Docker はすべてサポートしており、設定で明示的に定義する必要があります。 詳しくは、 実行環境に関するドキュメント をご覧ください。

ubuntu job:
  tags:
    - ubuntu
  script:
    - echo "Hello, $USER!"

osx job:
  tags:
    - osx
  script:
    - echo "Hello, $USER!"
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!"

依存関係のキャッシュ

image: node:latest

# ジョブ間のキャッシュモジュールです。
cache:
  key: ${CI_COMMIT_REF_SLUG}
  paths:
    - node_modules/

before_script:
  - npm install

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


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

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

サポートが必要ですか

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

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