我正在尝试为几个 Python 项目(所有 GAE/GCF)设置 CI/CD。我可以很好地部署代码,但我想在部署步骤之前运行整个测试套件。我怎样才能做到这一点?我是否必须设置整个 docker build 步骤才能完成此操作,还是有更简单的方法?
问问题
2747 次
2 回答
1
这是我的做法:
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args: ['-c', 'docker build . --tag my_app']
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args: ['-c', 'docker tag my_app:latest eu.gcr.io/my_project/my_app']
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args: ['-c', 'docker push eu.gcr.io/my_project/my_app']
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args: ['-c', 'docker run my_app pytest']
- name: 'gcr.io/cloud-builders/gcloud'
args: ['app', 'deploy', 'app.yaml', '--image-url=eu.gcr.io/my_project/my_app:latest']
我构建并标记我的容器映像。然后我将它推送到 Google Cloud Repo。然后我运行我的测试,pytest
然后我部署到谷歌云引擎。
于 2020-05-10T14:10:04.020 回答
0
这里的要点是使用entrypoint: 'bash'
测试步骤的选项。与原始答案相同,但指出所有其他步骤都不需要。
这是一个对我有用的例子:
steps:
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'myimage', '.']
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args: ['-c', 'docker run myimage npm run test']
于 2021-12-06T11:38:16.817 回答