diff --git a/.github/workflows/test_of_push_and_pull.yml b/.github/workflows/test_of_push_and_pull.yml index 29798b9c..4ee1316f 100644 --- a/.github/workflows/test_of_push_and_pull.yml +++ b/.github/workflows/test_of_push_and_pull.yml @@ -31,3 +31,7 @@ jobs: - name: Validate pull request changes run: scripts/github_pull_request.sh ${{ github.repository }} ${{ github.event.pull_request.number }} ${FILENAME} if: github.event_name == 'pull_request' + + - name: Checking if push changes are duplicated + run: python scripts/validate/links.py ${FILENAME} --only_duplicate_links_checker + if: github.event_name == 'push' diff --git a/scripts/README.md b/scripts/README.md index eae70ff9..2e926a37 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -40,6 +40,14 @@ To run link validation on the `README.md` file, being in the root directory of p $ python scripts/validate/links.py README.md ``` +As there are many links to check, this process can take some time. If your goal is not to check if the links are working, you can only check for duplicate links. Run: + +```bash +$ python scripts/validate/links.py README.md -odlc +``` + +*`-odlc` is an abbreviation of `--only_duplicate_links_checker`* + ## Running Tests To run all tests it is necessary to change to the scripts directory: diff --git a/scripts/validate/links.py b/scripts/validate/links.py index e727f03d..a5172b8b 100644 --- a/scripts/validate/links.py +++ b/scripts/validate/links.py @@ -241,21 +241,32 @@ def start_links_working_checker(links: List[str]) -> None: sys.exit(1) -def main(filename: str) -> None: +def main(filename: str, only_duplicate_links_checker: bool) -> None: links = find_links_in_file(filename) start_duplicate_links_checker(links) - start_links_working_checker(links) + + if not only_duplicate_links_checker: + start_links_working_checker(links) if __name__ == '__main__': num_args = len(sys.argv) + only_duplicate_links_checker = False if num_args < 2: print('No .md file passed') sys.exit(1) + elif num_args == 3: + third_arg = sys.argv[2].lower() + + if third_arg == '-odlc' or third_arg == '--only_duplicate_links_checker': + only_duplicate_links_checker = True + else: + print(f'Third invalid argument. Usage: python {__file__} [-odlc | --only_duplicate_links_checker]') + sys.exit(1) filename = sys.argv[1] - main(filename) + main(filename, only_duplicate_links_checker)