GitLab CIしたい
stages:
- build
- test
- deploy
variables:
変数名1: 値1
変数名2: 値2
default:
image: デフォルトのイメージ名
cache:
- キャッシュのパス
before_script
- すべてのジョブに共通する実行内容
ジョブ名:
stage: ステージ名
image: イメージ名
script:
- このジョブのメインの実行内容
クリエーションライン株式会社がGitLabの日本語マニュアルを作成し、公開してくれています。 とりあえず使い方に困ったら、このサイトを参照するとよいです。
キーワードをしりたい
GitLab CI/CDには、パイプラインに対して設定するグローバルキーワードと、 ジョブに対して設定するジョブキーワードがあります。 詳細はGitLab CIのキーワードリファレンスを参照してください。
デフォルト設定したい(default
)
default:
image: python:3.11
before_script:
- pip install -U pip
- pip install -U virtualenv
- virtualenv venv
- source venv/bin/activate
defaultキーワードで、パイプラインのデフォルト動作を定義できます。 その中身は、ジョブキーワードが利用できます。 上のサンプルは、Pythonを使ったプロジェクトで、僕がよく使っている設定です。 すべてのジョブで実行する内容をbefore_scriptに書いています。
注釈
パイプラインでPythonを使う場合は、まず仮想環境を作成することが推奨されています。
そのままpip
を使うと以下の警告が出力されます。
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager.
It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
注釈
before_script
をトップレベルに定義するのは、現在は推奨されていません。
default
の中に書くか、ジョブの中に書く必要があります。
環境変数したい(variables
)
variables:
BASE_URL: "$CI_PAGES_URL"
PIP_CACHE_DIR: '$CI_PROJECT_DIR/.cache/pip'
variablesキーワードで、パイプラインで使う環境変数(CI/CD変数)を定義できます。 このキーワードは、グローバルに対しても、ジョブに対しても利用できます。 グローバルキーワードとして定義した場合は、すべてのジョブのデフォルト設定として利用できます。 ジョブキーワードとして同じ変数名を定義した場合は、ジョブの設定値が優先されます。
キャッシュしたい(cache
)
default:
image: python:3.11
cache:
key: キーワード
paths:
- .cache/pip
- venv
cacheキーワードで、ジョブ間で共有するキャッシュのパスを定義できます。
paths
フィールドで、パスを設定します。
key
フィールドで、キャッシュのIDを設定できます。
実行条件したい(rules
)
test:
script:
- テストを実行
rules:
- if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH
rulesキーワードで、ジョブを実行する条件を定義できます。 上のサンプルでは、条件がコミットされたブランチ名がデフォルトブランチ名と一致しない場合にテストが走るように設定しています。 つまり、作業ブランチにコミットしたときに、テストが走るようになっています。
注釈
rules
の代わりにonly/except
を使うことは推奨されていないみたいです。
過去のブログ記事などを参考にしてパイプラインを作成した場合は、移行するとよいです。
ファイルを保存したい(artifacts
)
pages:
script:
- make dirhtml
- mv _build/html/ public/
artifacts:
paths:
- public
expire_in: "30 days"
artifactsキーワードで、保存するファイルを定義できます。 上のサンプルはGitLab PagesにSphinxで生成したドキュメントを公開するための設定です。 expire_inを使って、アーティファクトの保存期限を設定できます。 GitLabの無料ユーザーの場合、リポジトリの上限が10GiBとなっています。 必要のないアーティファクトは期限をつけて定期的に削除設定することをオススメします。