5

我正在尝试为几个 Python 项目(所有 GAE/GCF)设置 CI/CD。我可以很好地部署代码,但我想在部署步骤之前运行整个测试套件。我怎样才能做到这一点?我是否必须设置整个 docker build 步骤才能完成此操作,还是有更简单的方法?

4

2 回答 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 回答