File tree Expand file tree Collapse file tree 3 files changed +32
-21
lines changed Expand file tree Collapse file tree 3 files changed +32
-21
lines changed Original file line number Diff line number Diff line change 87
87
with :
88
88
filter : |
89
89
Doc/**
90
- # Temporarily skip paths with spaces
91
- # (i.e. "C API", "Core and Builtins")
92
- # to avoid "Error: One of your files includes a space".
93
- # Pending https://github.com/python/core-workflow/issues/186
94
- # Misc/**
95
- Misc/NEWS.d/next/Build/**
96
- Misc/NEWS.d/next/Documentation/**
97
- Misc/NEWS.d/next/IDLE/**
98
- Misc/NEWS.d/next/Library/**
99
- Misc/NEWS.d/next/Security/**
100
- Misc/NEWS.d/next/Tests/**
101
- Misc/NEWS.d/next/Tools-Demos/**
102
- Misc/NEWS.d/next/Windows/**
103
- Misc/NEWS.d/next/macOS/**
90
+ Misc/**
104
91
.github/workflows/reusable-docs.yml
92
+ format : csv # works for paths with spaces
105
93
- name : Check for docs changes
106
94
if : >-
107
95
github.event_name == 'pull_request'
Original file line number Diff line number Diff line change @@ -38,12 +38,14 @@ jobs:
38
38
39
39
with :
40
40
filter : " Doc/**"
41
+ format : csv # works for paths with spaces
41
42
- name : ' Build changed files in nit-picky mode'
42
43
if : github.event_name == 'pull_request'
43
44
continue-on-error : true
44
45
run : |
46
+ set -Eeuo pipefail
45
47
# Mark files the pull request modified
46
- touch ${{ steps.changed_files.outputs.added_modified }}
48
+ python Doc/tools/ touch-clean-files.py --clean ' ${{ steps.changed_files.outputs.added_modified }}'
47
49
# Build docs with the '-n' (nit-picky) option; convert warnings to annotations
48
50
make -C Doc/ PYTHON=../python SPHINXOPTS="-q -n --keep-going" html 2>&1 |
49
51
python Doc/tools/warnings-to-gh-actions.py
Original file line number Diff line number Diff line change 3
3
Touch files that must pass Sphinx nit-picky mode
4
4
so they are rebuilt and we can catch regressions.
5
5
"""
6
-
6
+ import argparse
7
+ import csv
8
+ import sys
7
9
from pathlib import Path
8
10
9
11
wrong_directory_msg = "Must run this script from the repo root"
28
30
rst for rst in Path ("Doc/" ).rglob ("*.rst" ) if rst .parts [1 ] not in EXCLUDE_SUBDIRS
29
31
}
30
32
31
- with Path ("Doc/tools/.nitignore" ).open () as clean_files :
32
- DIRTY = {
33
+
34
+ parser = argparse .ArgumentParser (
35
+ description = __doc__ , formatter_class = argparse .RawDescriptionHelpFormatter
36
+ )
37
+ parser .add_argument ("-c" , "--clean" , help = "Comma-separated list of clean files" )
38
+ args = parser .parse_args ()
39
+
40
+ if args .clean :
41
+ clean_files = next (csv .reader ([args .clean ]))
42
+ CLEAN = {
33
43
Path (filename .strip ())
34
44
for filename in clean_files
35
- if filename .strip () and not filename . startswith ( "#" )
45
+ if Path ( filename .strip ()). is_file ( )
36
46
}
37
-
38
- CLEAN = ALL_RST - DIRTY - EXCLUDE_FILES
47
+ elif args .clean is not None :
48
+ print (
49
+ "Not touching any files: an empty string `--clean` arg value passed." ,
50
+ )
51
+ sys .exit (0 )
52
+ else :
53
+ with Path ("Doc/tools/.nitignore" ).open () as ignored_files :
54
+ IGNORED = {
55
+ Path (filename .strip ())
56
+ for filename in ignored_files
57
+ if filename .strip () and not filename .startswith ("#" )
58
+ }
59
+ CLEAN = ALL_RST - IGNORED - EXCLUDE_FILES
39
60
40
61
print ("Touching:" )
41
62
for filename in sorted (CLEAN ):
You can’t perform that action at this time.
0 commit comments