diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 694453f..d1e7a0c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,3 +37,21 @@ jobs: run: bundle install --jobs 4 --retry 3 - name: Run tests run: bundle exec rake + docs-coverage: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: Setup Ruby + uses: actions/setup-ruby@v1 + with: + ruby-version: 3.0.x + - uses: actions/cache@v2 + with: + path: vendor/bundle + key: gems-build-rails-main-ruby-2.7.x-${{ hashFiles('**/Gemfile.lock') }} + - name: Verify docs coverage + run: | + gem install bundler:2.2.32 + bundle config path vendor/bundle + bundle install --jobs 4 --retry 3 + bundle exec rake docs:coverage diff --git a/.rubocop.yml b/.rubocop.yml index 765d5af..9739f21 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -5,9 +5,13 @@ inherit_gem: AllCops: NewCops: enable + SuggestExtensions: false Rails/RefuteMethods: Enabled: false Style/Documentation: Enabled: false + +Rails/RakeEnvironment: + Enabled: false diff --git a/README.md b/README.md index 7adb85a..8a1b6b1 100644 --- a/README.md +++ b/README.md @@ -31,10 +31,10 @@ linters: enabled: true ``` -### Rules +## Rules -- [GitHub::Accessibility::ImageHasAlt](./docs/rules/accessibility/no-aria-label-misuse.md) -- [GitHub::Accessibility::NoAriaLabelMisuse](./docs/rules/accessibility/image-has-alt.md) +- [GitHub::Accessibility::ImageHasAlt](./docs/rules/accessibility/image-has-alt.md) +- [GitHub::Accessibility::NoAriaLabelMisuse](./docs/rules/accessibility/no-aria-label-misuse.md) - [GitHub::Accessibility::NoRedundantImageAlt](./docs/rules/accessibility/no-redundant-image-alt.md) ## Testing diff --git a/Rakefile b/Rakefile index 88a4a1f..612d77c 100644 --- a/Rakefile +++ b/Rakefile @@ -9,5 +9,7 @@ Rake::TestTask.new do |t| t.test_files = FileList[ENV["TESTS"] || "test/**/*_test.rb"] end +Rake.add_rakelib "lib/tasks" + desc "Run tests" task default: :test diff --git a/lib/tasks/docs.rake b/lib/tasks/docs.rake new file mode 100644 index 0000000..f6efecf --- /dev/null +++ b/lib/tasks/docs.rake @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +namespace :docs do + task :coverage do + require "erb_lint/all" + require "erblint-github/linters" + + Dir[File.join(__dir__, "linters", "github/**/*.rb")].sort.each do |file| + rule_documentation_path = file + .gsub("#{__dir__}linters/github/", "docs/rules/") + .gsub(".rb", ".md") + .tr("_", "-") + raise "Missing rule documentation. Please document rule in #{rule_documentation_path}" unless File.file?(rule_documentation_path.to_s) + end + puts "All rules have been properly documented." + end +end