diff options
author | Archit Aggarwal <architag@amazon.com> | 2021-07-28 15:02:50 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-28 15:02:50 -0700 |
commit | 9f426a4a543b3d0201489a60b9758db2d4e1db20 (patch) | |
tree | c44a3f46a655fcdd9e30e0f05805a62679e5103c | |
parent | 5f21507703a220580c696648d33cf0003912aa9b (diff) | |
download | freertos-git-9f426a4a543b3d0201489a60b9758db2d4e1db20.tar.gz |
Hygiene update to manifest verification in CI (#671)
As the manifest verification script has been moved to FreeRTOS/CI-CD-Github-Actions as a GitHub Action along with the added functionality of verifying that manifest.yml versions match the current submoduled pointers in the repository, this PR updates the CI check for manifest verification to take advantage of the new manifest-verifier action from the repository.
-rw-r--r-- | .github/scripts/verify_manifest.py | 91 | ||||
-rw-r--r-- | .github/scripts/verify_manifest_requirements.txt | 2 | ||||
-rw-r--r-- | .github/workflows/ci.yml | 14 |
3 files changed, 9 insertions, 98 deletions
diff --git a/.github/scripts/verify_manifest.py b/.github/scripts/verify_manifest.py deleted file mode 100644 index 9bb3c9dd7..000000000 --- a/.github/scripts/verify_manifest.py +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/env python3 - -import os, sys -from yaml import load -from yaml import CLoader as Loader - -from git import Repo -from argparse import ArgumentParser - -REPO_PATH='' - -# List of submodules excluded from manifest.yml file -IGNORE_SUBMODULES_LIST = [ - 'FreeRTOS-Plus/Test/CMock', - 'FreeRTOS/Test/CMock/CMock', - 'FreeRTOS/Test/litani' - ] - -# Obtain submodule path of all entries in manifest.yml file. -def read_manifest(): - path_list = [] - - # Read YML file - path_manifest = os.path.join(REPO_PATH, 'manifest.yml') - assert os.path.exists(path_manifest), 'Missing manifest.yml' - with open(path_manifest, 'r') as fp: - manifest_data = fp.read() - yml = load(manifest_data, Loader=Loader) - assert 'dependencies' in yml, 'Manifest YML parsing error' - - # Iterate over all the "dependencies" entries, verify that - # each contains entries for the following hierarchy: - # name: "<library-name>" - # version: "<version>" - # repository: - # type: "git" - # url: <library-github-url> - # path: <path-to-submodule-in-repository> - # - for dep in yml['dependencies']: - assert 'version' in dep, "Failed to parse 'version/tag' for submodule" - assert 'repository' in dep and 'path' in dep['repository'] and 'url' in dep['repository'], "Failed to parse 'repository' object for submodule" - path_list.append(dep['repository']['path']) - - return sorted(path_list) - -# Generate list of submodules path in repository, excluding the -# path in IGNORES_SUBMODULES_LIST. -def get_all_submodules(): - path_list = [] - repo = Repo(REPO_PATH) - for submodule in repo.submodules: - path = submodule.abspath.replace(REPO_PATH+'/', '') - if path not in IGNORE_SUBMODULES_LIST: - path_list.append(path) - - return sorted(path_list) - -if __name__ == '__main__': - parser = ArgumentParser(description='manifest.yml verifier') - parser.add_argument('--repo-root-path', - type=str, - required=None, - default=os.getcwd(), - help='Path to the repository root.') - - args = parser.parse_args() - - # Convert any relative path (like './') in passed argument to absolute path. - REPO_PATH = os.path.abspath(args.repo_root_path) - - libraries_in_manifest_file = read_manifest() - git_submodules_list = get_all_submodules() - - print(REPO_PATH) - print(git_submodules_list) - - # Check that manifest.yml contains entries for all submodules - # present in repository. - if libraries_in_manifest_file == git_submodules_list: - print('Manifest.yml is verified!') - sys.exit(0) - else: - print('Manifest.yml is missing entries for:') - # Find list of library submodules missing in manifest.yml - for git_path in git_submodules_list: - if git_path not in libraries_in_manifest_file: - print(git_path) - sys.exit(1) - - diff --git a/.github/scripts/verify_manifest_requirements.txt b/.github/scripts/verify_manifest_requirements.txt deleted file mode 100644 index f83cdd5a9..000000000 --- a/.github/scripts/verify_manifest_requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -pyyaml -gitpython
\ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a811ff9a..44786965d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -128,14 +128,18 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + submodules: true - name: Install Python3 uses: actions/setup-python@v2 with: - python-version: '3.8' - - name: Install dependencies - run: python3 -m pip install -r .github/scripts/verify_manifest_requirements.txt - - name: Run script to verify manifest.yml - run: python3 .github/scripts/verify_manifest.py + python-version: '3.x' + - name: Run manifest verifier + uses: FreeRTOS/CI-CD-Github-Actions/manifest-verifier@main + with: + path: ./ + exclude-submodules: FreeRTOS-Plus/Test/CMock,FreeRTOS/Test/CMock/CMock,FreeRTOS/Test/litani + fail-on-incorrect-version: true memory-statistics: runs-on: ubuntu-latest |