簡體   English   中英

Google Cloud Builder - 如何觸發子目錄中的構建配置?

[英]Google Cloud Builder - how to trigger build configuration in a subdirectory?

我正在嘗試建立一個 Google Cloud Builder 構建觸發器來自動構建我的ASP .NET Core 應用程序並將其部署到 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工具測試了本地構建工作。

這兩種方法在本地有效:

  1. 應用程序子目錄cloud-build-local --config=cloudbuild.yaml --dryrun=false.
  2. 存儲庫根目錄cloud-build-local --config=clearbooks-rest-as.netcore/cloudbuild.yaml --dryrun=false clearbooks-rest-as.netcore

Build Trigger 定義似乎部分支持存儲庫根目錄的子目錄中的配置文件(方法 2),但它似乎假設代碼始終位於存儲庫根目錄中。

如何配置 Cloud Builder 以在存儲庫的子目錄中開始構建?

解決方案是更新cloudbuild.yaml

  1. 在構建步驟中添加dir:選項
  2. 提供正確的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 .

這反映了雲構建的工作方式:

  1. 正確的cloudbuild.yaml路徑
  2. 當前源目錄

我正在開發一個帶有 Spring Boot with App Engine 的示例項目,目錄結構就像這樣。

google-cloud
      - appengine-spring-boot
      - appflexengine-spring-boot

下面是為我工作的cloudbuild.yaml文件。

steps:
  - name: 'gcr.io/cloud-builders/mvn'
    dir: "appengine-spring-boot"
    #args: [ 'package','-f','pom.xml','-Dmaven.test.skip=true' ]
    args: [ 'clean', 'package']
  - name: "gcr.io/cloud-builders/gcloud"
    dir: "appengine-spring-boot"
    args: [ "app", "deploy" ]
    timeout: "1600s"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM