.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つのジョブで構成され、build
とtest
の2つのステージにグループ化されています。パイプラインは、プロジェクトのブランチに変更がプッシュされるたびに実行されます。
GitLab CI/CDはジョブを実行するだけでなく、ターミナルで見るのと同じように実行中に何が起こっているかも表示します:
あなたはアプリの戦略を作成し、GitLabはあなたが定義した内容に従ってパイプラインを実行します。パイプラインのステータスも GitLab によって表示されます:
何か問題があれば、変更をロールバックすることができます: