ci: Add an Action to check RuboCop filepaths
- This will stop the `Style/Documentation` filepath includes getting out of sync with what we declare as a public API, thus ensuring that everything is documented. - Maybe we could also add a job here to check that _all_ the paths in the RuboCop config still exist, but that's for another time.
This commit is contained in:
parent
9ec74fea2a
commit
93e2f86cf8
29
.github/workflows/rubocop-filepaths.yml
vendored
Normal file
29
.github/workflows/rubocop-filepaths.yml
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
name: RuboCop filepaths
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
if: github.repository == 'Homebrew/brew'
|
||||||
|
steps:
|
||||||
|
- name: Checkout repo
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Check public API docs
|
||||||
|
working-directory: Library/Homebrew
|
||||||
|
run: |
|
||||||
|
public_apis=$(git grep -l "@api public" | wc -l | tr -d ' ')
|
||||||
|
rubocop_docs=$(yq '.Style/Documentation.Include' .rubocop.yml | wc -l | tr -d ' ')
|
||||||
|
|
||||||
|
if [[ public_apis -ne rubocop_docs ]]
|
||||||
|
then
|
||||||
|
echo "All public Homebrew APIs should be included in the Style/Documentation RuboCop."
|
||||||
|
echo "There were ${public_apis} '@api public' lines but ${rubocop_docs} filepaths for the 'Style/Documentation' RuboCop."
|
||||||
|
echo "Add or remove the filepaths from Library/Homebrew/.rubocop.yml as appropriate."
|
||||||
|
exit 1
|
||||||
|
fi
|
Loading…
x
Reference in New Issue
Block a user