簡體   English   中英

GitLab CI 與 JS Linting

[英]GitLab CI with JS Linting

我在 GitLab 持續集成方面的經驗為 0,我需要設置一個作業來在 .js 文件上運行 ESLint。

我已經閱讀了 GitLab CI 和 Pipeline 文檔,以及一些 Git Hooks,但我仍然不知道如何設置它,所以任何詳細的和從一開始的答案都值得贊賞。

首先,您需要設置 CI 並提供一些可用的運行器,以便它們可以運行您的持續集成作業。 最簡單的方法是使用gitlab-ci-multi-runner (項目與文檔一起在這里)以及將在 docker 容器中運行 CI 作業的 docker executor。 一旦您配置了一些運行程序, 它們添加到您的 Gitlab 項目中,以便它們可用於運行作業。

完成后,您需要將.gitlab-ci.yml文件添加到您的項目中。 該文件用於描述在持續集成等過程中需要運行的作業。 這是一個示例(假設您使用npm安裝eslint

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 管道應啟動並運行上述步驟。

如果你想對你的 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

您還可以單獨運行 linter:

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

這段-f gitlab -c origin/dev告訴 linters 只檢查更改的代碼行。

此外,如果您使用pronto-eslint_npm並想檢查特定文件夾中的文件,請添加

.pronto_eslint_npm.yml將包含所需的正則表達式。 (就我而言,它有下一行)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM