GitLab AutoDevOpsでできること

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

コメントを残す