Skip to content

Commit 4f738fd

Browse files
committed
fix(devx): pin prettier and harden config validation
1 parent 8a67725 commit 4f738fd

6 files changed

Lines changed: 58 additions & 17 deletions

File tree

.github/workflows/ruby.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ jobs:
1919
- name: Install dependencies
2020
run: sudo apt-get install -yqq yamllint
2121

22+
- name: Install Node dependencies
23+
run: npm ci --ignore-scripts --no-fund --no-audit
24+
2225
- name: Set up Ruby
2326
uses: ruby/setup-ruby@v1
2427
with:

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ default: lint validate test
33
lint:
44
yamllint lib/html2rss/configs/ .github/
55
bundle exec rubocop -P -f quiet
6-
npx prettier --check lib/**/*.yml .github/**/*.yml README.md
6+
./node_modules/.bin/prettier --check lib/**/*.yml .github/**/*.yml README.md
77

88
validate:
99
bundle exec ruby bin/validate_configs
@@ -53,4 +53,4 @@ restore-tests:
5353

5454
lintfix:
5555
bundle exec rubocop -a
56-
npx prettier --write lib/**/*.yml .github/**/*.yml README.md
56+
./node_modules/.bin/prettier --write lib/**/*.yml .github/**/*.yml README.md

bin/setup

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ bundle install
77

88
echo
99
echo "==> Installing Node dependencies (required for make lint)..."
10-
npm install --no-fund --no-audit --no-save prettier
10+
npm install --ignore-scripts --no-fund --no-audit
1111

1212
echo
1313
echo "==> Checking system tools..."

bin/validate_configs

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,30 @@ require 'bundler/setup'
55
require 'html2rss'
66
require 'yaml'
77

8-
unless Html2rss::Config.respond_to?(:validate)
9-
warn 'Error: installed html2rss gem does not support Config.validate.'
10-
warn 'Run: bundle update html2rss'
11-
exit 1
12-
end
13-
148
files = Dir['lib/html2rss/configs/**/*.yml']
159
failed = []
1610

1711
files.each do |file|
18-
config = YAML.safe_load_file(file, symbolize_names: true)
19-
result = Html2rss::Config.validate(config)
12+
begin
13+
config = YAML.safe_load_file(file, symbolize_names: true)
14+
result = Html2rss::Config.validate(config)
2015

21-
if result.success?
22-
puts "ok #{file}"
23-
else
24-
puts "FAIL #{file}"
25-
result.errors.to_h.each do |key, messages|
26-
Array(messages).each { |msg| warn " #{key}: #{msg}" }
16+
if result.success?
17+
puts "ok #{file}"
18+
else
19+
puts "FAIL #{file}"
20+
result.errors.to_h.each do |key, messages|
21+
Array(messages).each { |msg| warn " #{key}: #{msg}" }
22+
end
23+
failed << file
2724
end
25+
rescue Psych::Exception => e
26+
puts "FAIL #{file}"
27+
warn " parse: #{e.message}"
28+
failed << file
29+
rescue StandardError => e
30+
puts "FAIL #{file}"
31+
warn " validation: #{e.class}: #{e.message}"
2832
failed << file
2933
end
3034
end

package-lock.json

Lines changed: 28 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"private": true,
3+
"devDependencies": {
4+
"prettier": "3.8.1"
5+
}
6+
}

0 commit comments

Comments
 (0)