mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
Use CSV-separated outputs @ get-changed-files @ CI (#105151)
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
This commit is contained in:
parent
9c44656feb
commit
eaa6702280
3 changed files with 32 additions and 21 deletions
16
.github/workflows/build.yml
vendored
16
.github/workflows/build.yml
vendored
|
@ -87,21 +87,9 @@ jobs:
|
||||||
with:
|
with:
|
||||||
filter: |
|
filter: |
|
||||||
Doc/**
|
Doc/**
|
||||||
# Temporarily skip paths with spaces
|
Misc/**
|
||||||
# (i.e. "C API", "Core and Builtins")
|
|
||||||
# to avoid "Error: One of your files includes a space".
|
|
||||||
# Pending https://github.com/python/core-workflow/issues/186
|
|
||||||
# Misc/**
|
|
||||||
Misc/NEWS.d/next/Build/**
|
|
||||||
Misc/NEWS.d/next/Documentation/**
|
|
||||||
Misc/NEWS.d/next/IDLE/**
|
|
||||||
Misc/NEWS.d/next/Library/**
|
|
||||||
Misc/NEWS.d/next/Security/**
|
|
||||||
Misc/NEWS.d/next/Tests/**
|
|
||||||
Misc/NEWS.d/next/Tools-Demos/**
|
|
||||||
Misc/NEWS.d/next/Windows/**
|
|
||||||
Misc/NEWS.d/next/macOS/**
|
|
||||||
.github/workflows/reusable-docs.yml
|
.github/workflows/reusable-docs.yml
|
||||||
|
format: csv # works for paths with spaces
|
||||||
- name: Check for docs changes
|
- name: Check for docs changes
|
||||||
if: >-
|
if: >-
|
||||||
github.event_name == 'pull_request'
|
github.event_name == 'pull_request'
|
||||||
|
|
4
.github/workflows/reusable-docs.yml
vendored
4
.github/workflows/reusable-docs.yml
vendored
|
@ -38,12 +38,14 @@ jobs:
|
||||||
uses: Ana06/get-changed-files@v2.2.0
|
uses: Ana06/get-changed-files@v2.2.0
|
||||||
with:
|
with:
|
||||||
filter: "Doc/**"
|
filter: "Doc/**"
|
||||||
|
format: csv # works for paths with spaces
|
||||||
- name: 'Build changed files in nit-picky mode'
|
- name: 'Build changed files in nit-picky mode'
|
||||||
if: github.event_name == 'pull_request'
|
if: github.event_name == 'pull_request'
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: |
|
run: |
|
||||||
|
set -Eeuo pipefail
|
||||||
# Mark files the pull request modified
|
# Mark files the pull request modified
|
||||||
touch ${{ steps.changed_files.outputs.added_modified }}
|
python Doc/tools/touch-clean-files.py --clean '${{ steps.changed_files.outputs.added_modified }}'
|
||||||
# Build docs with the '-n' (nit-picky) option; convert warnings to annotations
|
# Build docs with the '-n' (nit-picky) option; convert warnings to annotations
|
||||||
make -C Doc/ PYTHON=../python SPHINXOPTS="-q -n --keep-going" html 2>&1 |
|
make -C Doc/ PYTHON=../python SPHINXOPTS="-q -n --keep-going" html 2>&1 |
|
||||||
python Doc/tools/warnings-to-gh-actions.py
|
python Doc/tools/warnings-to-gh-actions.py
|
||||||
|
|
|
@ -3,7 +3,9 @@
|
||||||
Touch files that must pass Sphinx nit-picky mode
|
Touch files that must pass Sphinx nit-picky mode
|
||||||
so they are rebuilt and we can catch regressions.
|
so they are rebuilt and we can catch regressions.
|
||||||
"""
|
"""
|
||||||
|
import argparse
|
||||||
|
import csv
|
||||||
|
import sys
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
wrong_directory_msg = "Must run this script from the repo root"
|
wrong_directory_msg = "Must run this script from the repo root"
|
||||||
|
@ -28,14 +30,33 @@ ALL_RST = {
|
||||||
rst for rst in Path("Doc/").rglob("*.rst") if rst.parts[1] not in EXCLUDE_SUBDIRS
|
rst for rst in Path("Doc/").rglob("*.rst") if rst.parts[1] not in EXCLUDE_SUBDIRS
|
||||||
}
|
}
|
||||||
|
|
||||||
with Path("Doc/tools/.nitignore").open() as clean_files:
|
|
||||||
DIRTY = {
|
parser = argparse.ArgumentParser(
|
||||||
|
description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter
|
||||||
|
)
|
||||||
|
parser.add_argument("-c", "--clean", help="Comma-separated list of clean files")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
if args.clean:
|
||||||
|
clean_files = next(csv.reader([args.clean]))
|
||||||
|
CLEAN = {
|
||||||
Path(filename.strip())
|
Path(filename.strip())
|
||||||
for filename in clean_files
|
for filename in clean_files
|
||||||
if filename.strip() and not filename.startswith("#")
|
if Path(filename.strip()).is_file()
|
||||||
}
|
}
|
||||||
|
elif args.clean is not None:
|
||||||
CLEAN = ALL_RST - DIRTY - EXCLUDE_FILES
|
print(
|
||||||
|
"Not touching any files: an empty string `--clean` arg value passed.",
|
||||||
|
)
|
||||||
|
sys.exit(0)
|
||||||
|
else:
|
||||||
|
with Path("Doc/tools/.nitignore").open() as ignored_files:
|
||||||
|
IGNORED = {
|
||||||
|
Path(filename.strip())
|
||||||
|
for filename in ignored_files
|
||||||
|
if filename.strip() and not filename.startswith("#")
|
||||||
|
}
|
||||||
|
CLEAN = ALL_RST - IGNORED - EXCLUDE_FILES
|
||||||
|
|
||||||
print("Touching:")
|
print("Touching:")
|
||||||
for filename in sorted(CLEAN):
|
for filename in sorted(CLEAN):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue