クラウド関数 (クラウド関数のソース コード) ごとに 1 つのフォルダーで構成されるモノ リポジトリ (GCP ソース リポジトリ) を使用しています。クラウドビルドでCI/CDパイプラインを実装する予定なのですが、特定の関数のソースコードを変更してコミットするような設定ができる方法があれば教えていただきたいです。そのコードのみがデプロイされます。
- 約 50 の異なるコードがあります (メイン リポジトリ内に 50 のフォルダーが作成されます)。
- 各フォルダーは、requirement.txt、必要な .json ファイル、および main.py で構成されます。
私はこれの初心者であり、初めて CI CD を実装します。問題を適切な方法で説明できない場合はご容赦ください。どんな提案でも大いに役立ちます。
ありがとう。
更新したがって、現在、以下に提案されている .yaml ファイルを使用して、ビルドステップは完了していますが、関数が作成されておらず、この下に投稿されているビルドログにエラーが発生しています。
私の YAML ファイル
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
args:
- -c
- |
for d in $(git diff --name-only --diff-filter=AMDR @~..@ | cut -d'/' -f 1);
do
echo $d;
cd $d
gcloud functions deploy $d --region=us-central1 --runtime=python37 --trigger-http
cd ..
done
ステップは成功を示していますが FAIL LOG =(緑) -
FETCHSOURCE
Initialized empty Git repository in /workspace/.git/
From https://source.developers.google.com/p/xyz/r/testRep
* branch 2f78b61ea0cc45efc3e25570fe4a08707 -> FETCH_HEAD
HEAD is now at 2fb61 testing
BUILD
Already have image (with digest): gcr.io/cloud-builders/gcloud
fatal: ambiguous argument '@~..@': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
PUSH
DONE