2017-07-26 160 views
0

我在我的nodejs项目中测试scss-lint存在问题。GitLab CI:在NodeJS上配置yaml文件

enter image description here

当测试达到SCSS皮棉,它给出了一个错误。

如何确保测试不会因测试本身的成功结果而下降?

我gitlab-ci.yml

image: node:wheezy 

cache: 
    paths: 
    - node_modules/ 

stages: 
    - build 
    - test 

gem_lint: 
    image: ruby:latest 
    stage: build 
    script: 
    - gem install scss_lint 
    artifacts: 
    paths: 
    - node_modules/ 
    only: 
    - dev 
    except: 
    - master 

install_dependencies: 
    stage: build 
    script: 
    - npm install 
    artifacts: 
    paths: 
     - node_modules/ 
    only: 
    - dev 
    except: 
    - master 

scss-lint: 
    stage: test 
    script: 
    - npm run lint:scss-lint 
    artifacts: 
    paths: 
     - node_modules/ 
    only: 
    - dev 
    except: 
    - master 

回答

0

你做错了。

您定义的每个作业(gem_lint,install_dependencies和scss-lint)都以其自己的上下文运行。 所以你的问题是,在最后一步,它没有找到你安装的scss-lint gem,因为它切换了它的上下文。

你应该在同样的情况下同时执行所有脚本:

script: 
    - gem install scss_lint 
    - npm install 
    - npm run lint:scss-lint 

当然,对于这一点,你需要有一个具有两个NPM和创业板的安装也许你可以找到一个在码头工人形象docker hub),或者你可以选择一个(例如:ruby:latest)并添加第一个脚本作为另一个将安装npm的脚本:

- curl -sL https://deb.nodesource.com/setup_6.x | bash - 
+0

谢谢,我会试试这个选项。 我能以不同的方式解决我的问题。 '''gem_scss_lint: 图像:红宝石:2.4 阶段:建立 脚本: - 宝石安装scss_lint - SCSS皮棉<文件或目录> 只: - dev的 除外: - 主 依赖关系: 阶段:建立 脚本: - NPM只安装 : - dev的 除了: - master''' – Dmytro