提交版本

时间:2019-05-24 08:50:42

标签: google-cloud-build

对于我的CI / CD管道,我想在云构建(使用github触发器)上启动python单元测试。要运行测试,我需要一个数据存储区模拟器来在安全的环境中创建实体(以在构建后隔离我的测试构建)。 我的python应用是运行于python 3.7上的经典Flask应用,适用于应用引擎标准环境。

我尝试提交自己的版本(gcloud beta builds submit --config build.yaml .),但是该版本停留在最后一步,并且什么也不输出(仅一个日志:Step #2: Already have image (with digest): gcr.io/cloud-builders/docker)。

在本地环境中,我已经在docker容器中运行了模拟器,然后运行了测试容器,并且该容器正在运行。 此外,在使用cloud-build-local运行时,测试正在运行,并且我的构建以DONE状态完成。

这是我的云构建YAML:

steps:
- name: 'gcr.io/cloud-builders/docker'
  entrypoint: /bin/sh
  args:
  - '-c'
  - |
    docker run -d -p 9225:9225 google/cloud-sdk gcloud beta emulators datastore start --project=test --consistency=1 --host-port 0.0.0.0:9225
- name: 'gcr.io/cloud-builders/docker'
  args: ['build', '--rm', '-f', './Dockerfile', '-t', 'gcr.io/$PROJECT_ID/core-test:latest', '.']
- name: 'gcr.io/cloud-builders/docker'
  args: ['run', 'gcr.io/$PROJECT_ID/core-test:latest']

这是Dockerfile:

FROM gcr.io/google-appengine/python

RUN apt-get update

RUN virtualenv /venv -p python3.7

ENV VIRTUAL_ENV /venv
ENV PATH /venv/bin:$PATH

# Copy the application's source code
WORKDIR /app

ADD . /app

RUN pip install -r requirements.txt -r requirements-dev.txt

RUN mkdir ../data

ENV DATASTORE_PROJECT_ID=test
ENV DATASTORE_EMULATOR_HOST=host.docker.internal:9225
ENV PYTHON_ENV=TestConfig

CMD nosetests

这些测试调用了我在数据存储区模拟器中创建实体的API端点。

我希望看到我的测试正在运行并且构建成功,但是我不明白自己在做什么错。 是否将云构建正确用于CI?云构建能够在构建内部运行docker容器吗? 关于使用云构建进行测试的唯一文档是here,但我找不到更多信息。

0 个答案:

没有答案