.gitlab-ci.yml ファイル

GitLab CI/CDを使うには、以下のファイルが必要です:

  • Git リポジトリにホストされたアプリケーションコード。
  • リポジトリのルートに.gitlab-ci.yml というファイルがあり、CI/CD の設定が含まれています。

.gitlab-ci.yml ファイルで定義します:

  • 実行するスクリプト
  • インクルードしたいその他の設定ファイルやテンプレート。
  • 依存関係とキャッシュ。
  • 順番に実行したいコマンドと並行して実行したいコマンド。
  • アプリケーションをデプロイする場所。
  • スクリプトを自動的に実行するか、手動で起動するか。

スクリプトはジョブにグループ化され、ジョブはより大きなパイプラインの一部として実行されます。複数の独立したジョブを、定義した順序で実行するステージにグループ化できます。CI/CD設定には、非表示のジョブが少なくとも1つ必要です。

アプリケーションに合った、実行したいテストに沿った順序でジョブを編成するべきです。プロセスを視覚化するために、ジョブに追加するスクリプトはコンピュータで実行するCLIコマンドと同じだと想像してください。

.gitlab-ci.yml ファイルをリポジトリに追加すると、GitLab がそれを検出し、GitLab Runnerというアプリケーションがジョブで定義されたスクリプトを実行します。

.gitlab-ci.yml ファイルには次のようなものが含まれます:

stages:
  - build
  - test

build-code-job:
  stage: build
  script:
    - echo "Check the ruby version, then build some Ruby project files:"
    - ruby -v
    - rake

test-code-job1:
  stage: test
  script:
    - echo "If the files are built successfully, test some files with one command:"
    - rake test1

test-code-job2:
  stage: test
  script:
    - echo "If the files are built successfully, test other files with a different command:"
    - rake test2

この例では、build ステージのbuild-code-job ジョブが最初に実行されます。ジョブが使用している Ruby のバージョンを出力し、rake を実行してプロジェクトファイルをビルドします。このジョブが正常に完了すると、test ステージにある 2 つのtest-code-job ジョブが並行して開始し、ファイルのテストを実行します。

この例の完全なパイプラインは3つのジョブで構成され、buildtest の2つのステージにグループ化されています。パイプラインは、プロジェクトのブランチに変更がプッシュされるたびに実行されます。

GitLab CI/CDはジョブを実行するだけでなく、ターミナルで見るのと同じように実行中に何が起こっているかも表示します:

job running

あなたはアプリの戦略を作成し、GitLabはあなたが定義した内容に従ってパイプラインを実行します。パイプラインのステータスも GitLab によって表示されます:

pipeline status

何か問題があれば、変更をロールバックすることができます:

rollback button

.gitlab-ci.yml ファイルの完全な構文を見る.