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

チュートリアル: 初めてのGitLab CI/CDパイプラインを作成して実行する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

このチュートリアルでは、GitLabで初めてのCI/CDパイプラインを設定し、実行する方法を説明します。

すでにCI/CDの基本的な概念を理解している場合は、チュートリアル: 複雑なパイプラインを作成する:で一般的なキーワードについて確認できます。

前提要件

始める前に、以下を確認してください:

  • CI/CDを使用するプロジェクトがGitLabにある。
  • プロジェクトのメンテナーまたはオーナーのロールを持っている。

プロジェクトがない場合は、https://gitlab.comで公開プロジェクトを無料で作成できます。

ステップ

初めてのパイプラインを作成して実行するには:

  1. ジョブを実行するためのRunnerが利用可能であることを確認します

    GitLab.comを使用している場合は、この手順を省略できます。GitLab.comでは、インスタンスRunnerが提供されています。

  2. リポジトリのルートに.gitlab-ci.ymlファイルを作成します。このファイルでCI/CDジョブを定義します。

このファイルをリポジトリにコミットすると、Runnerがジョブを実行します。ジョブの結果はパイプラインに表示されます。

Runnerが利用可能であることを確認する

GitLabでは、RunnerはCI/CDジョブを実行するエージェントです。

GitLab.comを使用している場合は、この手順を省略できます。GitLab.comでは、インスタンスRunnerが提供されています。

利用可能なRunnerを確認するには:

  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
  2. 設定 > CI/CDを選択します。
  3. Runnersを展開します。

アクティブなRunner(横に緑色の丸印が表示されているもの)が1つ以上あれば、ジョブを処理できるRunnerが利用可能です。

これらの設定にアクセスできない場合は、GitLab管理者に連絡してください。

Runnerがない場合

Runnerがない場合:

  1. ローカルマシンにGitLab Runnerをインストールします。
  2. プロジェクトにRunnerを登録します。shell executorを選択します。

後の手順でCI/CDジョブを実行すると、ジョブはローカルマシン上で実行されます。

.gitlab-ci.ymlファイルを作成する

次に、.gitlab-ci.ymlファイルを作成します。これは、GitLab CI/CDに対する指示を指定するYAMLファイルです。

このファイルでは、以下を定義します:

  • Runnerが実行するジョブの構造と順序。
  • 特定の条件が発生した場合にRunnerが下すべき決定。

プロジェクトで.gitlab-ci.ymlファイルを作成するには:

  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。

  2. コード > リポジトリを選択します。

  3. ファイルリストの上部で、コミット先のブランチを選択します。不明な場合は、masterまたはmainのままにします。次に、プラスアイコン( plus )を選択し、新しいファイルを選択します:

    現在のフォルダーにファイルを作成するための新しいファイルボタン

  4. ファイル名.gitlab-ci.ymlと入力し、大きい方のウィンドウに次のサンプルコードを貼り付けます:

    build-job:
      stage: build
      script:
        - echo "Hello, $GITLAB_USER_LOGIN!"
    
    test-job1:
      stage: test
      script:
        - echo "This job tests something"
    
    test-job2:
      stage: test
      script:
        - echo "This job tests something, but takes more time than test-job1."
        - echo "After the echo commands complete, it runs the sleep command for 20 seconds"
        - echo "which simulates a test that runs 20 seconds longer than test-job1"
        - sleep 20
    
    deploy-prod:
      stage: deploy
      script:
        - echo "This job deploys something from the $CI_COMMIT_BRANCH branch."
      environment: production

    この例は、build-jobtest-job1test-job2deploy-prodの4つのジョブを示しています。echoコマンドに記載されているコメントは、ジョブを表示する際にUI上に表示されます。定義済み変数$GITLAB_USER_LOGIN$CI_COMMIT_BRANCHの値は、ジョブの実行時に入力されます。

  5. 変更をコミットするを選択します。

パイプラインが起動し、.gitlab-ci.ymlファイルで定義したジョブが実行されます。

パイプラインとジョブのステータスを表示する

パイプラインとその中のジョブを確認してみましょう。

  1. ビルド > パイプラインに移動します。3つのステージで構成されるパイプラインが表示されるはずです:

    パイプラインリストは、3つのステージで構成される実行中のパイプラインを示しています

  2. パイプラインIDを選択すると、パイプラインを視覚的に確認できます:

    パイプライングラフは、すべてのステージの各ジョブ、そのステータス、依存関係を示しています

  3. ジョブ名を選択すると、ジョブの詳細を確認できます。たとえば、deploy-prodを選択します:

    ジョブ詳細ページは、現在のステータス、タイミング情報、ログの出力を示しています

GitLabで初めてのCI/CDパイプラインを作成できました。おつかれさまでした。

これで、.gitlab-ci.ymlをカスタマイズして、より高度なジョブを定義できます。

.gitlab-ci.ymlの活用ヒント

.gitlab-ci.ymlファイルを使いこなすためのヒントを以下に示します。

.gitlab-ci.ymlの完全な構文については、CI/CD YAML構文リファレンスを参照してください。

  • パイプラインエディタを使用して、.gitlab-ci.ymlファイルを編集できます。
  • 各ジョブにはスクリプトセクションがあり、各ジョブはステージに属しています:
  • ジョブとステージの実行方法をカスタマイズする追加設定が可能です:
    • rulesキーワードを使用して、ジョブを実行するかスキップするかの条件を指定できます。onlyおよびexceptのレガシーキーワードは引き続きサポートされていますが、同じジョブでrulesと併用することはできません。
    • パイプラインのジョブとステージ間で情報を永続的に保持するには、cacheartifactsを使用します。各ジョブに一時的なRunnerを使用する場合でも、これらのキーワードを使用して依存関係とジョブの出力を保存できます。
    • defaultキーワードを使用して、すべてのジョブに適用される追加設定を指定できます。このキーワードは、すべてのジョブで実行されるbefore_scriptセクションとafter_scriptセクションを定義する際によく使用されます。

移行元:

動画:

  • First time GitLab & CI/CD(初めてのGitLab & CI/CD): GitLabの簡単な概要、CI/CDの最初のステップ、Goプロジェクトのビルド、テストの実行、CI/CDパイプラインエディタの使用、シークレットやセキュリティの脆弱性の検出、非同期練習用の演習が含まれています。
  • Intro to GitLab CI(GitLab CI入門): このワークショップでは、Web IDEを使用してCI/CDによるソースコードのビルドと単体テストの実行を迅速に開始する方法を説明します。