如何在Cloudbuild步骤中运行express + mongodb测试

时间:2018-10-10 06:01:15

标签: node.js mongodb kubernetes

嗨,所有智者都在这里。

我是DEVOPS的新手,因此问题标题可能会引起误解... 看起来我在这里需要许多学科的指导...

这是我的情况:

  1. 在我公司,我们有使用mongo的nodejs应用程序,在这里我们有摩卡咖啡和chay测试。当测试运行时,他们需要带有一些示例数据的mongo数据库 (这是第一个问题-对真正的数据库进行nodejs应用程序单元测试是否正确?)

  2. 我们已经将travis配置为在每次提交时运行这些测试,并且正在运行

  3. 我们已将gce配置为通过提交到特定分支(例如“ test”或“ dev”)触发了将应用程序上传到云中的过程

这是clouduild.yaml:

steps:
- name: 'gcr.io/cloud-builders/npm'
  args: ['install']
- name: 'gcr.io/cloud-builders/docker'
  args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/sdp-demo-app:$SHORT_SHA', '.' ]
- name: 'gcr.io/cloud-builders/kubectl'
  args: ['set', 'image', 'deployment/demo-app', 'demo-app=gcr.io/$PROJECT_ID/sdp-demo-app:$SHORT_SHA', '--namespace=$BRANCH_NAME']
  env:
  - 'CLOUDSDK_COMPUTE_ZONE=europe-west1-b'
  - 'CLOUDSDK_CONTAINER_CLUSTER=prod'
images:
- 'gcr.io/$PROJECT_ID/sdp-demo-app'
tags:
- 'demo'
- 'containerbuilder'

这是问题:

好像我需要在这里再增加一个步骤(在“安装”步骤之后)进行测试,例如:

- name: 'gcr.io/$PROJECT_ID/npm'
  args: ['test']

但是在我的情况下,这是行不通的,因为测试需要一些mongodb,

因此需要示例如何将某些mongo用作pod或自定义构建器

OR

可能更正确的方法是将travis配置为仅在提交特定分支时才触发cloudbuild(有办法吗?)

这是我的travis:

language: node_js
node_js:
  - "9"
sudo: required
notifications:
  email: false
dist: trusty
addons:
  chrome: stable
cache:
  directories:
  - $HOME/.npm
env:
  matrix:
    - MONGODB=3.6.6
before_install:
  - export CHROME_BIN=chromium-browser
  - export DISPLAY=:99.0
  - sh -e /etc/init.d/xvfb start
install:
  - wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-${MONGODB}.tgz
  - tar xzf mongodb-linux-x86_64-${MONGODB}.tgz
  - ${PWD}/mongodb-linux-x86_64-${MONGODB}/bin/mongod --version
  - npm install -g local-web-server codecov nsp
  - npm install
before_script:
  - mkdir ${PWD}/mongodb-linux-x86_64-${MONGODB}/data
  - ${PWD}/mongodb-linux-x86_64-${MONGODB}/bin/mongod --dbpath ${PWD}/mongodb-linux-x86_64-${MONGODB}/data --logpath ${PWD}/mongodb-linux-x86_64-${MONGODB}/mongodb.log --fork
script:
  # run build script specified in package.json
  - npm run tslint
  - npm run test
  - npm run build

  - npm run coverage
  - codecov -t bsdhjhsfkdssfdsdfsd

思想和方向将会得到体现

0 个答案:

没有答案