- 前提条件
- ステップ
- ランナーが利用可能であることを確認します。
.gitlab-ci.yml
ファイルを作成します。- パイプラインとジョブのステータスの表示
.gitlab-ci.yml
ヒント- 関連するトピック
チュートリアル最初の GitLab CI/CD パイプラインの作成と実行
このチュートリアルでは、GitLabで最初のCI/CDパイプラインを設定して実行する方法を紹介します。
すでに CI/CD の基本的な概念に慣れている場合は、チュートリアルで共通のキーワードについて学ぶことができます:複雑なパイプラインの作成
前提条件
作業を開始する前に、以下を確認してください:
- CI/CDを使いたいGitLabのプロジェクト。
- プロジェクトのメンテナーまたはオーナーロール。
プロジェクトを持っていない場合は、https://gitlab.comで無料で公開プロジェクトを作成できます。
ステップ
最初のパイプラインを作成し、実行します:
-
ジョブを実行できるRunnerがあることを確認します。
GitLab.comを使っている場合は、このステップは飛ばしても構いません。GitLab.comが共有ランナーを提供してくれます。
-
リポジトリのルートに
.gitlab-ci.yml
ファイル を作成します。このファイルで CI/CD ジョブを定義します。
このファイルをリポジトリにコミットすると、Runnerがジョブを実行します。ジョブの結果はパイプラインに表示されます。
ランナーが利用可能であることを確認します。
GitLab では、Runner は CI/CD ジョブを実行するエージェントです。
利用可能なランナーを見るには
- Settings > CI/CDに移動し、Runnerを展開します。
少なくとも1つのアクティビティがあり、その横に緑色の丸が表示されていれば、ジョブを処理するためのランナーが利用可能です。
ランナーがいない場合
ランナーがいなければ
- GitLab Runnerをローカルマシンにインストールしてください。
- プロジェクト用のRunner を登録します。
shell
の Executor を選択します。
CI/CDジョブが実行されると、後のステップで、ローカルマシン上で実行されます。
.gitlab-ci.yml
ファイルを作成します。
.gitlab-ci.yml
ファイルを作成します。これは、GitLab CI/CDの指示を指定するYAMLファイルです。
このファイルでは
- ランナーが実行するジョブの構造と順序。
- 特定の条件が発生した場合にランナーが行うべき決定。
.gitlab-ci.yml
:
- 左サイドバーで、コード > リポジトリを選択します。
-
ファイルリストの上で、コミットするブランチを選択します。よくわからない場合は、
master
またはmain
のままにしておいてください。次に、プラスアイコン({plus})と新規ファイルを選択します: -
ファイル名には
.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
この例では4つのジョブを示しています:
build-job
test-job1
,test-job2
,deploy-prod
.echo
コマンドにリストされたコメントは、ジョブを表示する際に UI に表示されます。定義済み変数$GITLAB_USER_LOGIN
と$CI_COMMIT_BRANCH
の値は、ジョブの実行時に入力されます。 - 変更をコミット を選択します。
パイプラインが起動し、.gitlab-ci.yml
ファイルで定義したジョブが実行されます。
パイプラインとジョブのステータスの表示
パイプラインとその中のジョブを見てみましょう。
-
Build > Pipelinesに進みます。3つのステージを持つパイプラインが表示されているはずです:
-
パイプラインIDを選択して、パイプラインを視覚的に表示します:
-
ジョブ名を選択して、ジョブの詳細を表示します。例えば、
deploy-prod
:
GitLabで最初のCI/CDパイプラインの作成に成功しました。おめでとうございます!
さっそく.gitlab-ci.yml
をカスタマイズして、より高度なジョブを定義してみましょう。
.gitlab-ci.yml
ヒント
.gitlab-ci.yml
ファイルを使い始めるためのヒントをいくつか紹介します。
完全な.gitlab-ci.yml
構文については、完全な.gitlab-ci.yml
キーワードリファレンス を参照してください。
-
パイプラインエディターを使って
.gitlab-ci.yml
ファイルを編集してください。 - 各ジョブはスクリプトセクションを含み、ステージに属します:
-
stage
はジョブの逐次実行を記述します。Runnerが利用可能な場合、1つのステージのジョブは並行して実行されます。 - ジョブをステージ順から外れて実行するには、
needs
キーワード を使用します。これにより、有効非巡回グラフ](../directed_acyclic_graph/index.md)が作成されます。
-
- ジョブやステージの実行方法をカスタマイズするために、追加の設定を行うことができます:
- ジョブを実行またはスキップするタイミングを指定するには、
rules
キーワードを使用してください。only
およびexcept
レガシーキーワードはまだサポートされていますが、同じジョブ内でrules
と一緒に使用することはできません。 -
cache
とartifacts
を使用して、パイプライン内でジョブやステージ間の情報を永続的に保持します。これらのキーワードは、各ジョブにエフェメラルランナーを使用する場合でも、依存関係とジョブ出力を保存する方法です。 - すべてのジョブに適用される追加設定を指定するには、
default
キーワードを使用します。このキーワードは、すべてのジョブで実行されるbefore_script
およびafter_script
セクションを定義するためによく使用されます。
- ジョブを実行またはスキップするタイミングを指定するには、
関連するトピック
- CircleCI からのマイグレーション
- Jenkinsからのマイグレーション
- はじめてのGitLab & CI/CDをご覧ください。GitLabの簡単な紹介、CI/CDの最初のステップ、Goプロジェクトのビルド、テストの実行、CI/CDパイプラインエディタの使用、シークレットやセキュリティ脆弱性の検出、非同期練習のための演習などが含まれます。
- GitLab CI入門をご覧ください。このワークショップでは、Web IDEを使ってCI/CDを使ってソースコードをビルドし、ユニットテストを実行します。