我正在尝试建立Google Cloud Builder构建触发器,以自动构建ASP .NET Core application并将其部署到Google AppEngine。
使用当前的cloudbuild.yaml:
steps:
- name: 'gcr.io/cloud-builders/dotnet'
args: [ 'publish', '-c', 'Release' ]
- name: 'gcr.io/cloud-builders/gcloud'
args: ['app','deploy','./bin/Release/netcoreapp2.1/publish/app.yaml']
我已经使用cloud-build-local
工具测试了本地版本的工作情况。
这两种方法在本地有效:
cloud-build-local --config=cloudbuild.yaml --dryrun=false .
cloud-build-local --config=clearbooks-rest-aspnetcore/cloudbuild.yaml --dryrun=false clearbooks-rest-aspnetcore
“构建触发器”定义似乎部分支持来自存储库根目录(方法2)的子目录中的配置文件,但是似乎假定代码始终位于存储库根目录中。
如何配置Cloud Builder在存储库的子目录中启动构建?
答案 0 :(得分:4)
解决方案是更新cloudbuild.yaml
:
dir:
选项app.yaml
位置以进行部署步骤这是正在运行的cloudbuild.yaml:
steps:
- name: 'gcr.io/cloud-builders/dotnet'
args: [ 'publish', '-c', 'Release' ]
dir: 'clearbooks-rest-aspnetcore'
- name: 'gcr.io/cloud-builders/gcloud'
args: ['app','deploy','clearbooks-rest-aspnetcore/bin/Release/netcoreapp2.1/publish/app.yaml']
在本地测试时,请在存储库根目录上运行cloud-build-local
,而不要在app子目录上运行:
cloud-build-local --config=clearbooks-rest-aspnetcore/cloudbuild.yaml --dryrun=false .
这反映了Cloud Build的工作方式: