[英]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.