- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在GCP上建立一个完全自动化的CI / CD管道。在Cloud Build中,我已经有了一个cloudbuild.yaml,它可以构建Dockerfile并将构建的Docker镜像推送到Container Registry。但是,在构建Dockerfile之前,我找不到运行xUnit测试的解决方案,并且如果任何测试失败,则Cloud Build不应构建Dockerfile并退出并返回错误/异常。
我目前正在使用的cloudbuild.yaml:
steps:
- name: gcr.io/cloud-builders/dotnet
entrypoint: 'bash'
args:
- '-c'
- |
dotnet test --no-build -c ${_BUILD_CONFIG} $REPO_NAME\\TestCore
id: Test
- name: gcr.io/cloud-builders/docker
args:
- build
- '-t'
- '$_IMAGE_NAME:$COMMIT_SHA'
- .
- '-f'
- $_DOCKERFILE_NAME
dir: $_DOCKERFILE_DIR
id: Build
- name: gcr.io/cloud-builders/docker
args:
- push
- '$_IMAGE_NAME:$COMMIT_SHA'
id: Push
- name: gcr.io/cloud-builders/gke-deploy
args:
- prepare
- '--filename=$_K8S_YAML_PATH'
- '--image=$_IMAGE_NAME:$COMMIT_SHA'
- '--app=$_K8S_APP_NAME'
- '--version=$COMMIT_SHA'
- '--namespace=$_K8S_NAMESPACE'
- '--label=$_K8S_LABELS'
- '--annotation=$_K8S_ANNOTATIONS,gcb-build-id=$BUILD_ID'
- '--create-application-cr'
- >-
--links="Build
details=https://console.cloud.google.com/cloud-build/builds/$BUILD_ID?project=$PROJECT_ID"
- '--output=output'
id: Prepare deploy
- name: gcr.io/cloud-builders/gsutil
args:
- '-c'
- |-
if [ "$_OUTPUT_BUCKET_PATH" != "" ]
then
gsutil cp -r output/suggested gs://$_OUTPUT_BUCKET_PATH/config/$_K8S_APP_NAME/$BUILD_ID/suggested
gsutil cp -r output/expanded gs://$_OUTPUT_BUCKET_PATH/config/$_K8S_APP_NAME/$BUILD_ID/expanded
fi
id: Save configs
entrypoint: sh
- name: gcr.io/cloud-builders/gke-deploy
args:
- apply
- '--filename=output/expanded'
- '--cluster=$_GKE_CLUSTER'
- '--location=$_GKE_LOCATION'
- '--namespace=$_K8S_NAMESPACE'
id: Apply deploy
images:
- '$_IMAGE_NAME:$COMMIT_SHA'
options:
substitutionOption: ALLOW_LOOSE
substitutions:
_IMAGE_NAME: gcr.io/resolute-land-274909/github_nagydominik_onlineretailer_partial
_GKE_LOCATION: europe-west3-a
_K8S_NAMESPACE: default
_OUTPUT_BUCKET_PATH: resolute-land-274909_cloudbuild/deploy
_K8S_APP_NAME: productapi
_K8S_LABELS: ''
_DOCKERFILE_DIR: ''
_DOCKERFILE_NAME: Dockerfile_productapi
_K8S_YAML_PATH: Kubernetes/productapi.yaml
_GKE_CLUSTER: onlineretailer-cluster
_K8S_ANNOTATIONS: gcb-trigger-id=cb8757e5-7dce-4aa9-bd43-6c4418f9dacb
tags:
- gcp-cloud-build-deploy
- $_K8S_APP_NAME
最佳答案
可能的方法是使用docker-compose
在构建步骤中运行测试,并从test_main
服务(运行测试的服务容器)中获取退出代码。
- id: testingWithDockerCompose
name: 'docker/compose:1.22.0'
args: ['-f', 'docker-compose-test.yml', 'up', '--abort-on-container-exit', '--exit-code-from' , 'test_main']
docker-compose
进行测试的更多信息,请阅读中级文章
here。
关于.net - 问:如何配置cloudbuild.yaml以运行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61999426/
当我将 cloudbuild.yaml 与 CloudBuild 触发器一起使用时,它失败了: failed unmarshalling build config cloudbuild.yaml: j
我的项目像这样分成多个 git 模块: / + | +-module_1 | | | +- cloudbuild.yaml | +- src/ | +-.git/
我正在学习 CloudBuild,并了解我可以使用 waitFor 来影响构建运行的顺序。 job1 包含一些 sleep 时间来模拟长时间运行的作业。 job2 只是回应了一些东西。 done 等待
如何替换 cloudbuild.yaml 中的替换字符串? 我想使用 cloudbuild 将应用引擎版本设置为 $TAG_NAME。由于该版本只接受连字符,我需要先将点替换为连字符。 我试过: st
如何替换 cloudbuild.yaml 中的替换字符串? 我想使用 cloudbuild 将应用引擎版本设置为 $TAG_NAME。由于该版本只接受连字符,我需要先将点替换为连字符。 我试过: st
在 cloudbuild.yaml 上进行此配置(文件中还有其他类似的片段): - name: 'gcr.io/cloud-builders/gcloud' id: 'step_1' args
我正在使用 Google Cloud Container Builder 构建我的图像。我将它连接到我的 GitHub 存储库,因此它是通过推送到特定分支来触发的。我为我的构建步骤显式提供了一些环境变
我正在通过以下步骤之一运行云构建: - name: "gcr.io/something" id: DO-STUFF entrypoint: python args: ['some_script.py'
有没有人知道如何在 cloudbuild 上构建 quarkus native 镜像? 我使用以下命令来做到这一点: - name: maven:3-jdk-11 entrypoint: mv
使用以下输出构建错误(使用 Rails 应用程序) ERROR: (gcloud.app.deploy) There is a cloudbuild.yaml in the current direc
我正在尝试在 google cloudbuild 中构建一个使用私有(private)仓库的 go 项目,但是当 go 尝试下载该模块时,它找不到修订版并且它正在寻找错误的路径。我按照谷歌提供的说明
我正在尝试在 cloudbuild 中使用 serverless framework 构建我的 go 应用程序。 这是我的项目结构 /api /giam go.mod A
给定一些通用的 Python 代码,结构如下...... cloudbuild.yaml requirements.txt functions/ folder_a/ test/
我正在试验自动化我理想地部署和忘记的项目的部分。该项目由一个 XML 解析器和一个小型 Flask 网站组成。目前文件夹结构如下所示: . ├── init.sql └── parser ├─
我正在开发一个 CloudBuild 脚本,该脚本为集成测试构建多阶段 Docker 镜像。为了优化构建脚本,我选择使用 Kaniko .下面提供了 Dockerfile 和 cloudbuild.y
我正在设置云构建触发器以部署 PHP/Symfony 应用程序。当 docker 文件运行 php app/console assetic:dump命令以创建 Assets 我收到以下错误。 SQLS
在文档中,他们说我们可以使用 cloudbuild.yaml 文件从云容器注册表构建容器并将其部署到云运行: steps: # Build the container image - name: 'g
我正在设置一个 GitRepo,其中包含项目的不同模块。它有一些遗留代码、一些用于 Ardino 的 C/C++ 以及一个包含一些依赖项和 Kotlin 文件的 JavaFX 项目。我真正需要的是,根
在文档中,他们说我们可以使用 cloudbuild.yaml 文件从云容器注册表构建容器并将其部署到云运行: steps: # Build the container image - name: 'g
我正在 Cloud Build 中为一个非常基本的 Node.js 应用创建一个 CI/CD 管道,并部署到 GCP 应用引擎标准。 非 secret 环境变量存储在 app.yaml 文件中。但我当
我是一名优秀的程序员,十分优秀!