Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Greiling <mike@pixelcog.com>2018-10-02 21:55:26 +0300
committerMike Greiling <mike@pixelcog.com>2018-10-02 21:55:26 +0300
commit9ab5910065c22b6e26fd7906d32bf457f3abb07d (patch)
treed826132980736f0fb2fe21fddfe89d91bb99d241
parenteda6b43cbe50a1217a35d9d173379fd41a36534f (diff)
parent685d579472018c968e785d7d49ec7f84f7438e97 (diff)
Merge branch 'leipert-frontend-danger' into 'master'
Danger checks for the frontend See merge request gitlab-org/gitlab-ce!21859
-rw-r--r--.gitlab-ci.yml4
-rw-r--r--Dangerfile2
-rw-r--r--danger/eslint/Dangerfile29
-rw-r--r--danger/prettier/Dangerfile39
4 files changed, 73 insertions, 1 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9c5b40dce21..02a9f399193 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -444,10 +444,10 @@ setup-test-env:
- vendor/gitaly-ruby
danger-review:
+ <<: *pull-cache
image: registry.gitlab.com/gitlab-org/gitlab-build-images:danger
stage: test
allow_failure: true
- cache: {}
dependencies: []
before_script: []
only:
@@ -461,6 +461,8 @@ danger-review:
- $CI_COMMIT_REF_NAME =~ /.*-stable(-ee)?-prepare-.*/
script:
- git version
+ - node --version
+ - yarn install --frozen-lockfile --cache-folder .yarn-cache
- danger --fail-on-errors=true
rspec-pg 0 30: *rspec-metadata-pg
diff --git a/Dangerfile b/Dangerfile
index 46e53edcac4..10caacff4c4 100644
--- a/Dangerfile
+++ b/Dangerfile
@@ -7,3 +7,5 @@ danger.import_dangerfile(path: 'danger/database')
danger.import_dangerfile(path: 'danger/documentation')
danger.import_dangerfile(path: 'danger/frozen_string')
danger.import_dangerfile(path: 'danger/commit_messages')
+danger.import_dangerfile(path: 'danger/prettier')
+danger.import_dangerfile(path: 'danger/eslint')
diff --git a/danger/eslint/Dangerfile b/danger/eslint/Dangerfile
new file mode 100644
index 00000000000..f78488cfd0a
--- /dev/null
+++ b/danger/eslint/Dangerfile
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+def get_eslint_files(files)
+ files.select do |file|
+ file.end_with?('.js', '.vue') &&
+ File.read(file).include?('/* eslint-disable')
+ end
+end
+
+eslint_candidates = get_eslint_files(git.added_files + git.modified_files)
+
+return if eslint_candidates.empty?
+
+warn 'This merge request changed files with disabled eslint rules. Please consider fixing them.'
+
+markdown(<<~MARKDOWN)
+ ## Disabled eslint rules
+
+ The following files have disabled `eslint` rules. Please consider fixing them:
+
+ * #{eslint_candidates.map { |path| "`#{path}`" }.join("\n* ")}
+
+ Run the following command for more details
+
+ ```
+ node_modules/.bin/eslint --report-unused-disable-directives --no-inline-config \\
+ #{eslint_candidates.map { |path| " '#{path}'" }.join(" \\\n")}
+ ```
+MARKDOWN
diff --git a/danger/prettier/Dangerfile b/danger/prettier/Dangerfile
new file mode 100644
index 00000000000..86f9f6af475
--- /dev/null
+++ b/danger/prettier/Dangerfile
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+def get_prettier_files(files)
+ files.select do |file|
+ file.end_with?('.js', '.scss', '.vue')
+ end
+end
+
+prettier_candidates = get_prettier_files(git.added_files + git.modified_files)
+
+return if prettier_candidates.empty?
+
+unpretty = `node_modules/prettier/bin-prettier.js --list-different #{prettier_candidates.join(" ")}`
+ .split(/$/)
+ .map(&:strip)
+ .reject(&:empty?)
+
+return if unpretty.empty?
+
+warn 'This merge request changed frontend files without pretty printing them.'
+
+markdown(<<~MARKDOWN)
+ ## Pretty print Frontend files
+
+ The following files should have been pretty printed with `prettier`:
+
+ * #{unpretty.map { |path| "`#{path}`" }.join("\n* ")}
+
+ Please run
+
+ ```
+ node_modules/.bin/prettier --write \\
+ #{unpretty.map { |path| " '#{path}'" }.join(" \\\n")}
+ ```
+
+ Also consider auto-formatting [on-save].
+
+ [on-save]: https://docs.gitlab.com/ee/development/new_fe_guide/style/prettier.html
+MARKDOWN