Repository navigation
Fix problems with tools, simplify and add checks with pylint #240
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Pull request checks | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| branches: | |
| - main | |
| - release/* | |
| jobs: | |
| check-tools: | |
| name: Pylint all python files under tools/ | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.x" | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install pylint pyyaml | |
| - name: Run pylint | |
| run: | | |
| pylint tools/**py | |
| validate-xml: | |
| name: Use xmlllint to validate the xml file against the schema file | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get -y install libxml2-utils | |
| - name: Run xmllint | |
| run: | | |
| xmllint --schema standard_names.xsd standard_names.xml --noout | |
| check-unique-standard-names: | |
| name: Check for duplicates in standard names | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.x" | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get -y install libxml2-utils | |
| - name: Check for duplicate standard names, descriptions | |
| run: | | |
| tools/check_xml_unique.py -s standard_names.xml | |
| tools/check_xml_unique.py -s standard_names.xml --field="description" | |
| tools/check_xml_unique.py -s standard_names.xml --field="cfname" | |
| check-name-rules: | |
| name: Check standard names against rules | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.x" | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get -y install libxml2-utils | |
| - name: Checks standard names against character rules | |
| run: | | |
| tools/check_name_rules.py -s standard_names.xml | |
| test-rendering: | |
| name: Test rendering xml file to markdown and yaml | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.x" | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get -y install libxml2-utils | |
| python -m pip install --upgrade pip | |
| python -m pip install PyYaml | |
| - name: Test that sections are alphabetized | |
| run: | | |
| tools/sort_standard_names.py -s standard_names.xml | |
| if ! git diff --exit-code --quiet; then | |
| echo "❌ Standard Names are not alphabetized within each section" | |
| echo "Run tools/sort_standard_names.py and commit changes" | |
| echo "✅ To fix: Run the following command locally and commit the result:" | |
| echo " tools/sort_standard_names.py standard_names.xml" | |
| echo | |
| exit 1 | |
| fi | |
| - name: Test rendering xml file to markdown | |
| run: | | |
| # Checks if the saved markdown matches freshly rendered markdown. | |
| # If this fails, prompt user to update | |
| tools/write_standard_name_table.py --output-format md -s standard_names.xml | |
| if ! git diff --exit-code --quiet; then | |
| echo "❌ Detected that Metadata-standard-names.md is not consistent with standard_names.xml" | |
| echo "✅ To fix: Run the following command locally and commit the result:" | |
| echo " tools/write_standard_name_table.py --output-format md -s standard_names.xml" | |
| echo "📘 This script requires the pyyaml Python package; to install with pip use command:" | |
| echo " python -m pip install PyYaml" | |
| echo "📘 For conda users, environment file tools/environment.yml is provided." | |
| echo | |
| exit 1 | |
| fi | |
| - name: Test rendering xml file to yaml | |
| run: | | |
| tools/write_standard_name_table.py --output-format yaml -s standard_names.xml | |
| if ! git diff --exit-code --quiet; then | |
| echo "❌ Detected that Metadata-standard-names.yaml is not consistent with standard_names.xml" | |
| echo "✅ To fix: Run the following command locally and commit the result:" | |
| echo " tools/write_standard_name_table.py --output-format yaml -s standard_names.xml" | |
| echo "📘 This script requires the pyyaml Python package; to install with pip use command:" | |
| echo " python -m pip install PyYaml" | |
| echo "📘 For conda users, environment file tools/environment.yml is provided." | |
| echo | |
| exit 1 | |
| fi | |