CLOVER🍀

That was when it all began.

GitLabのAuto DevOpsのソースコードやテンプレートの場所を確認する

これは、なにをしたくて書いたもの?

GitLabでプロジェクトを作成して、ソースコードをpushすると.gitlab-ci.ymlがないのにパイプラインが
動き始めることに「あれ?」と思いまして。

これはなんだろう?と思って見てみたら、Auto DevOpsという機能のようです。

Auto DevOps

AutoDevOpsについてはこちら。

Auto DevOps | GitLab Docs

Settings → CI/CDでAuto DevOpsが有効になっていると

pushするとパイプラインが動き始めるようです。

Auto DevOpsは、プロジェクト固有の.gitlab-ci.ymlがある場合は動作しません。

.gitlab-ci.ymlがなく、Auto DevOpsが有効になっていると以下のことを行います。

  • 言語とフレームワークの自動検出
  • セキュリティスキャン
  • コード品質とパフォーマンスのテスト
  • 変更を確認するためのプレビュー
  • Kubernetes環境へのデプロイ
  • リスクとダウンタイムを減らすためのプログレッシブデプロイメント

どこまでを実行するかはプロジェクト内のファイルや設定次第のようですね。

実行されるステージはこちら。

Stages of Auto DevOps | GitLab Docs

カスタマイズや使用できる変数についてはこちら。

Auto DevOpsのソースコードやテンプレートの場所を確認する

個人的にはAuto DevOpsをそのまま使うことはしないつもりなのですが、どういうことをやっているのかという点で
gitlab-ci.ymlの定義としては参考になるような気がします。

というわけで、ソースコードを探してみました。

こちらですね。

https://gitlab.com/gitlab-org/gitlab/-/blob/v17.10.4-ee/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml

ここから、以下のジョブテンプレートを呼び出しているようです。

https://gitlab.com/gitlab-org/gitlab/-/tree/v17.10.4-ee/lib/gitlab/ci/templates/Jobs

自分でgitlab-ci.ymlを書く時に、参考に見てみるとよいのではないかなと思います。

環境

今回は、以下の環境で確認しています。

GitLab。

$ sudo gitlab-rake gitlab:env:info

System information
System:         Ubuntu 24.04
Current User:   git
Using RVM:      no
Ruby Version:   3.2.5
Gem Version:    3.6.5
Bundler Version:2.6.5
Rake Version:   13.0.6
Redis Version:  7.0.15
Sidekiq Version:7.2.4
Go Version:     unknown

GitLab information
Version:        17.10.4
Revision:       17c5705edda
Directory:      /opt/gitlab/embedded/service/gitlab-rails
DB Adapter:     PostgreSQL
DB Version:     14.17
URL:            http://192.168.0.6
HTTP Clone URL: http://192.168.0.6/some-group/some-project.git
SSH Clone URL:  git@192.168.0.6:some-group/some-project.git
Using LDAP:     no
Using Omniauth: yes
Omniauth Providers:

GitLab Shell
Version:        14.41.0
Repository storages:
- default:      unix:/var/opt/gitlab/gitaly/gitaly.socket
GitLab Shell path:              /opt/gitlab/embedded/service/gitlab-shell

Gitaly
- default Address:      unix:/var/opt/gitlab/gitaly/gitaly.socket
- default Version:      17.10.4
- default Git Version:  2.48.1.gl1

GitLab Runner。

$ gitlab-runner --version
Version:      17.10.1
Git revision: ef334dcc
Git branch:   17-10-stable
GO version:   go1.23.6 X:cacheprog
Built:        2025-03-26T12:24:33Z
OS/Arch:      linux/amd64