正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLab CI/CDに変換フロー

  • プラン: Premium、Ultimate
  • アドオン: GitLab Duo Core、Pro、またはEnterprise
  • 提供形態: GitLab.com、GitLab Self-Managed
  • この機能はGitLabクレジットを使用します。

この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。

GitLab CI/CDに変換フローは、JenkinsパイプラインをGitLab CI/CDに移行するのに役立ちます。このフローには次の特長があります:

  • 既存のJenkinsパイプライン設定を分析します。
  • Jenkinsパイプライン構文をGitLab CI/CDのYAMLに変換します。
  • GitLab CI/CD実装に関するベストプラクティスを提案します。
  • 変換されたパイプライン設定を含むマージリクエストを作成します。
  • JenkinsプラグインをGitLabの機能に移行するためのガイダンスを提供します。

このフローは、GitLab UIでのみ使用できます。

GitLab CI/CDに変換フローは、サービスアカウントを使用してマージリクエストを作成します。SOC 2、SOX法、ISO 27001、またはFedRAMPの要件がある組織は、適切なピアレビューポリシーが整備されていることを確認してください。詳細については、マージリクエストに関するコンプライアンス上の考慮事項を参照してください。

前提条件

Jenkinsfileを変換するには、次の要件を満たしている必要があります:

フローを使用する

JenkinsfileをGitLab CI/CDに変換するには:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. Jenkinsfileを開きます。
  3. ファイルの上にあるGitLab CI/CDに変換を選択します。
  4. 自動化 > セッションを選択して、進捗状況を監視します。
  5. パイプラインが正常に実行されたら、左側のサイドバーで、コード > マージリクエストを選択します。Duo Workflow: Convert to GitLab CIというタイトルのマージリクエストが表示されます。
  6. マージリクエストをレビューし、必要に応じて変更を加えます。

変換プロセス

このプロセスでは、次の内容が変換されます:

  • パイプラインステージとステップ。
  • 環境変数。
  • ビルドトリガーとパラメータ。
  • アーティファクトと依存関係。
  • 並列実行。
  • 条件ロジック。
  • ビルド後アクション。

Jenkinsfileの入力:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'npm install'
                sh 'npm build'
            }
        }
        stage('Test') {
            steps {
                sh 'npm test'
            }
        }
        stage('Deploy') {
            when { branch 'main' }
            steps {
                sh './deploy.sh'
            }
        }
    }
}

GitLabの出力:

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - npm install
    - npm build
  artifacts:
    paths:
      - node_modules/
      - dist/

test:
  stage: test
  script:
    - npm test

deploy:
  stage: deploy
  script:
    - ./deploy.sh
  only:
    - main