Stage: Build
Auto Build
未調査。
“Cloud Native Buildpacks”っていうのを使うらしい。Dockerfileを作るのを自動化してくれそう。pythonのrequirement.txtなんかを検知して言語を特定してイメージを作るとか…。
Auto Dependency Scanning
Ultimate版でのみ利用可能。でもCEなら可能かも。Geminiによると”dependency_scan”っていうステージで動作するとか。
調査中…。
include:
- template: Jobs/Dependency-Scanning.v2.gitlab-ci.yml
# あるいは以下かも
- template: Security/Dependency-Scanning.gitlab-ci.yml Stage: Test
Auto Test
非推奨、になっているはず。
herokuっていうのを使ってたけど、”Cloud Native Buildpacks”ってのを新たに使うことになったから。
Auto Browser Performance Testing
基本的には有料版のみ。ただしこのジョブ自体の実行はCEでも動作可能。違いは結果の確認方法で無償版はアーティファクトのダウンロードか、ログ出力でしか確認できないこと。
未調査。
include:
- template: Performance/Browser-Performance.gitlab-ci.yml Auto Code Intelligence
未調査。
Auto Code Quality
基本的には有料版のみ。ただしこのジョブ自体の実行はCEでも動作可能。違いは結果の確認方法で無償版はアーティファクトのダウンロードか、ログ出力でしか確認できないこと。
未調査。
include:
- template: Code-Quality.gitlab-ci.yml Auto Container Scanning
基本的には有料版のみ。ただしこのジョブ自体の実行はCEでも動作可能。違いは結果の確認方法で無償版はアーティファクトのダウンロードか、ログ出力でしか確認できないこと。
未調査。
include:
- template: Security/Container-Scanning.gitlab-ci.yml Stage: Deploy
Auto Review Apps
基本的には有料版のみ。ただしCEでも一部動作可能。
未調査。
# .gitlab-ci.yml - Auto Review Appsのための最小限の設定(?)
# ----------------------------------------------------
# ステージ定義
# ----------------------------------------------------
stages:
- build
- review
- cleanup
# ----------------------------------------------------
# 1. ビルドジョブ
# デプロイするための成果物を作成します。
# ----------------------------------------------------
build_static_content:
stage: build
image: alpine/git
script:
- echo "アプリケーションのビルド処理を想定"
- mkdir public
# CI/CD変数を使ってブランチ名入りのデモコンテンツを生成
- echo "<h1>Review App for Branch: $CI_COMMIT_REF_SLUG</h1>" > public/index.html
artifacts:
expire_in: 1 day # 成果物の期限
paths:
- public/ # デプロイジョブに渡す成果物
# ----------------------------------------------------
# 2. レビューアプリのデプロイ
# 各ブランチ専用の一時環境(Review App)を作成します。
# ----------------------------------------------------
review_app:
stage: review
image: alpine/git
# mainブランチやタグでは実行しない
except:
- main
- tags
# environment キーワードがレビューアプリ機能の中核です
environment:
# 環境名: ブランチ名に基づきユニークな名前を生成
name: review/$CI_COMMIT_REF_SLUG
# URL: デプロイ先の動的なURL。MRにこのURLが表示されます。
# ***ご利用のホスティングサービス(S3, Netlify, Vercelなど)のURLに置き換えてください。***
url: http://$CI_COMMIT_REF_SLUG.your-app-domain.com
# 停止ジョブの定義: この環境を停止するジョブを指定
on_stop: stop_review_app
script:
- echo "一時環境へのデプロイ開始"
# ここにデプロイスクリプトを記述します
- echo "デプロイが完了しました。"
# ----------------------------------------------------
# 3. レビューアプリの停止/削除
# ブランチがマージ/削除された時に、デプロイされた環境を削除します。
# ----------------------------------------------------
stop_review_app:
stage: cleanup
image: alpine/git
# environment キーワードで、停止対象の環境を指定
environment:
name: review/$CI_COMMIT_REF_SLUG
# action: stop を指定することで、環境の削除がトリガーされます
action: stop
# 実行条件: ブランチ削除やマージ時など、手動での実行を許可
when: manual
variables:
# 停止処理ではソースコードは不要
GIT_STRATEGY: none
script:
- echo "Review App の停止処理を開始。"
# ここに環境を削除するスクリプトを記述します
- echo "環境を削除しました。"
Auto Deploy
基本的には有料版のみ。ただしCEでも一部動作可能。
未調査。
include:
- template: Auto-DevOps.gitlab-ci.yml Stage: Secure
Auto Dynamic Application Security Testing (DAST)
Ultimate版でのみ利用可能。
Auto Static Application Security Testing (SAST)
基本的には有料版のみ。ただしこのジョブ自体の実行はCEでも動作可能。違いは結果の確認方法で無償版はアーティファクトのダウンロードか、ログ出力でしか確認できないこと。
未調査。
include:
- template: Security/SAST.gitlab-ci.yml Auto Secret Detection
基本的には有料版のみ。ただしCEでも一部動作可能。
未調査。
include:
- template: Security/Secret-Detection.gitlab-ci.yml 参考文献
GitLab Docs “Auto DevOps”
GitLab Docs “Auto DevOps”
CREATIONLINE.INC “自動DevOpsのステージ”
GitLabを使って秒で始めるDevSecOps
一般的な.gitlab-ci.ymlの書き方:
.gitlab-ci.yml キーワードリファレンス
GitLab CI/CD設定ファイルの最適化
Auto Build関連:
コンテナ標準化時代における次世代Buildpack『Cloud Native Buildpack』について
buildpacks.io
Auto Dependency Scanning関連: