2023-02-25 04:08:30 -08:00
|
|
|
# Copyright 2023 Google LLC
|
2021-10-26 17:17:22 -07:00
|
|
|
#
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
|
|
|
|
2021-12-20 23:51:51 -08:00
|
|
|
name: "Linting"
|
|
|
|
on:
|
2021-10-26 17:03:38 -07:00
|
|
|
pull_request:
|
|
|
|
branches:
|
|
|
|
- master
|
2021-10-26 23:28:10 -07:00
|
|
|
|
2021-10-26 17:03:38 -07:00
|
|
|
jobs:
|
|
|
|
linting:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
2023-02-25 04:08:30 -08:00
|
|
|
- uses: actions/checkout@v3
|
2021-10-26 17:03:38 -07:00
|
|
|
|
|
|
|
- name: Set up Python
|
2023-02-25 04:08:30 -08:00
|
|
|
uses: actions/setup-python@v4
|
2021-10-26 17:03:38 -07:00
|
|
|
with:
|
2022-08-31 06:31:30 -07:00
|
|
|
python-version: "3.10"
|
2023-02-25 04:08:30 -08:00
|
|
|
cache: 'pip'
|
|
|
|
cache-dependency-path: 'tools/requirements.txt'
|
2021-10-26 17:03:38 -07:00
|
|
|
|
2021-10-26 23:24:45 -07:00
|
|
|
- name: Set up Terraform
|
2023-02-25 04:08:30 -08:00
|
|
|
uses: hashicorp/setup-terraform@v2
|
2021-10-26 23:24:45 -07:00
|
|
|
with:
|
2023-07-07 08:40:13 -07:00
|
|
|
terraform_version: 1.5.1
|
2021-10-26 23:24:45 -07:00
|
|
|
|
2021-10-26 17:03:38 -07:00
|
|
|
- name: Install dependencies
|
2021-10-27 07:08:29 -07:00
|
|
|
run: |
|
2022-02-14 03:13:42 -08:00
|
|
|
pip install -r tools/requirements.txt
|
2021-10-26 17:03:38 -07:00
|
|
|
|
2021-10-26 19:23:33 -07:00
|
|
|
- name: Boilerplate
|
2021-10-26 17:03:38 -07:00
|
|
|
id: boilerplate
|
|
|
|
run: |
|
2021-10-26 17:13:26 -07:00
|
|
|
python3 tools/check_boilerplate.py $GITHUB_WORKSPACE
|
2021-10-26 17:03:38 -07:00
|
|
|
|
|
|
|
- name: Terraform Linting Check
|
|
|
|
id: fmt
|
|
|
|
run: |
|
2021-10-27 07:08:29 -07:00
|
|
|
terraform fmt -recursive -check -diff $GITHUB_WORKSPACE
|
2021-10-26 17:03:38 -07:00
|
|
|
|
2022-10-28 08:26:37 -07:00
|
|
|
- name: Check documentation
|
2022-01-19 05:17:20 -08:00
|
|
|
id: documentation-fabric
|
2021-10-26 17:03:38 -07:00
|
|
|
run: |
|
2023-08-31 01:15:12 -07:00
|
|
|
python3 tools/check_documentation.py --show-diffs --no-show-summary modules fast blueprints
|
2022-01-19 05:17:20 -08:00
|
|
|
|
2022-10-28 08:26:37 -07:00
|
|
|
- name: Check documentation links
|
2022-02-04 04:28:07 -08:00
|
|
|
id: documentation-links-fabric
|
|
|
|
run: |
|
2023-08-31 01:15:12 -07:00
|
|
|
python3 tools/check_links.py --no-show-summary .
|
2022-02-12 04:29:22 -08:00
|
|
|
|
|
|
|
- name: Check name length (fast)
|
|
|
|
id: name-length-fast
|
|
|
|
run: |
|
2023-08-31 01:15:12 -07:00
|
|
|
python3 tools/check_names.py --prefix-length=10 --failed-only fast/stages
|
2022-02-14 03:13:42 -08:00
|
|
|
|
|
|
|
- name: Check python formatting
|
|
|
|
id: yapf
|
|
|
|
run: |
|
2023-01-21 08:17:51 -08:00
|
|
|
yapf --style="{based_on_style: google, indent_width: 2, SPLIT_BEFORE_NAMED_ASSIGNS: false}" -p -d \
|
|
|
|
tools/*.py \
|
|
|
|
blueprints/cloud-operations/network-dashboard/src/*py \
|
|
|
|
blueprints/cloud-operations/network-dashboard/src/plugins/*py
|
2023-05-05 07:56:21 -07:00
|
|
|
|
|
|
|
- name: Check blueprint metadata
|
|
|
|
id: metadata
|
|
|
|
run: |
|
2023-08-31 01:15:12 -07:00
|
|
|
python tools/validate_metadata.py -v --failed-only blueprints
|