GitLab CI与JS Linting

时间:2017-04-10 08:40:12

标签: javascript gitlab eslint gitlab-ci

我对GitLab持续集成有0次经验,我需要设置一个作业来在.js文件上运行ESLint。

我已经阅读了GitLab CI和Pipeline文档以及一些Git Hooks,但我仍然不知道如何设置这个,所以任何详细的,从一开始的答案开始就会受到赞赏。

谢谢,

2 个答案:

答案 0 :(得分:13)

首先,您需要设置CI并让一些跑步者可用,以便他们可以运行您的持续集成作业。最简单的方法是使用gitlab-ci-multi-runner(项目为here以及documentation)以及将在docker容器中运行CI作业的docker执行程序。一旦你为你的Gitlab项目配置了一些跑步者add,他们就可以开始工作了。

一旦完成了这项工作,您需要在项目中添加.gitlab-ci.yml文件。此文件用于描述在持续集成期间需要运行的作业等。以下是一个示例(假设您使用eslint安装npm

image: node:latest

stages:
  - lint

eslint:
  stage: lint
  script:
    # Install ESLint in this docker container
    - npm install -g eslint
    # Configure ESLint (will read your .eslintrc file)
    - eslint --init
    # Run ESLint
    - eslint <your_js_file>

添加您的.gitlab-ci.yml文件,提交并推送更改。 CI管道应该启动并运行上述步骤。

答案 1 :(得分:0)

如果您想对PR提出意见,这里是eslint和pronto的示例。 (我们有ruby应用,所以我们也检查ruby代码样式)

image: 'circleci/ruby:2.5.1-node-browsers'

codestyle:
  script:
  - sudo apt -y install cmake
  # install eslint dependencies
  - sudo npm install -g eslint
  - sudo npm install -g eslint-plugin-babel
  - sudo npm install -g eslint-plugin-react
  - sudo npm install -g eslint-plugin-import
  - sudo npm install -g babel-eslint
  - sudo npm install -g eslint-config-airbnb
  - sudo npm install -g eslint-plugin-jsx-a11y
  # install pronto runners
  - gem install pronto --no-ri
  - gem install pronto-rubocop --no-ri
  - gem install rubocop-rspec --no-ri
  - gem install pronto-eslint_npm --no-ri
  # run linters
  - vendor/ruby/bin/pronto run -f gitlab -c origin/dev --exit-code

您还可以单独运行linters:

- vendor/ruby/bin/pronto run -r eslint_npm -f gitlab -c origin/dev --exit-code

这一段-f gitlab -c origin/dev告诉linter者仅检查成对的代码行。

如果您使用pronto-eslint_npm,并且想检查特定文件夹中的文件,则添加

.pronto_eslint_npm.yml将包含所需的正则表达式。 (在我的情况下,它具有下一行)

files_to_lint: app\/frontend\/\S*(\.js|\.es6|\.jsx)$