嗨,所有智者都在这里。
我是DEVOPS的新手,因此问题标题可能会引起误解... 看起来我在这里需要许多学科的指导...
这是我的情况:
在我公司,我们有使用mongo的nodejs应用程序,在这里我们有摩卡咖啡和chay测试。当测试运行时,他们需要带有一些示例数据的mongo数据库 (这是第一个问题-对真正的数据库进行nodejs应用程序单元测试是否正确?)
我们已经将travis配置为在每次提交时运行这些测试,并且正在运行
这是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
思想和方向将会得到体现