如何利用Docker在Travis CI上针对多种语言运行测试

时间:2019-07-17 03:23:45

标签: node.js docker go travis-ci

我正在尝试使用Travis CI创建CI / CD管道,以测试前端,测试后端并进行部署。前端使用Node,后端使用Go。

我的存储库的结构如下:

- client
    - DockerFile
    - ...(front-end code)
- server
    - DockerFile
    - ...(back-end code)
- .travis.yml

我能够以某种方式利用DockerFiles对应用程序的两面执行测试,并让Travis正确报告其结果吗?

我对这两种工具都不熟悉,因此我希望能在自己陷入困境之前得到一些建议。我计划结合使用Travis阶段和docker build / docker run命令。像这样:

jobs:
  include:
    - stage: test client side
      before_script:
        - cd client
        - docker build ...
      script:
        docker run image /bin/sh -c "run node tests"
      after_script:
        - cd ..

    - stage: test server side
      before_script:
        - cd server
      script:
        docker run image /bin/sh -c "run go tests"
      after_script:
        - cd ..

    - stage: deploy
      script: skip
      deploy:
        - provider: s3
            skip_cleanup: true
            on:
            branch: master

This doc page看起来很有前途,但是包含language: rubyscript: - bundle exec rake test会让我失望。我不确定如果通过docker运行测试,为什么需要Ruby(至少是这样)。

更新1

我相信我可以使其与应用程序的客户端正常工作。

这就是我得到的:

services:
  - docker

jobs:
  include:
    - stage: test
      before_script:
        - docker pull node:12
      script:
        - docker run --rm -e CI=true -v $(pwd)/client:/src node:12 /bin/sh -c "cd src; npm install; npm test"

0 个答案:

没有答案