| # Copyright 2019 Google LLC |
| # |
| # 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 |
| # |
| # https://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. |
| |
| name: Lint |
| |
| on: [pull_request] |
| |
| jobs: |
| bazel_to_cmake: |
| runs-on: ubuntu-18.04 |
| steps: |
| - name: Checking out repository |
| uses: actions/checkout@v2 |
| - name: Running bazel_to_cmake |
| run: ./build_tools/bazel_to_cmake/bazel_to_cmake.py |
| - name: Checking Diff |
| run: git diff --exit-code |
| |
| buildifier: |
| runs-on: ubuntu-18.04 |
| steps: |
| - name: Checking out repository |
| uses: actions/checkout@v2 |
| - name: Running Buildifier |
| # TODO(gcmn): Look into only running on changed files. |
| uses: thompsonja/bazel-buildifier@v0.2.1 |
| with: |
| excludes: "*/third_party/*" |
| # For compatibility with Google's internal source repository, we still |
| # use this. |
| warnings: "-native-cc" |
| |
| yapf: |
| runs-on: ubuntu-18.04 |
| env: |
| BASE_REF: ${{ github.base_ref }} |
| steps: |
| - name: Checking out repository |
| uses: actions/checkout@v2 |
| - name: Setting up python |
| uses: actions/setup-python@v2 |
| # We have to explicitly fetch the base branch as well |
| - name: Fetching Base Branch |
| run: git fetch --no-tags --prune --depth=1 origin "${BASE_REF?}:${BASE_REF?}" |
| - name: Install yapf |
| run: python3 -m pip install yapf |
| - name: Run format_diff.py with yapf |
| run: | |
| git diff -U0 "${BASE_REF?}" | python3 third_party/format_diff/format_diff.py yapf -i |
| git diff --exit-code |
| - name: Instructions for fixing the above linting errors |
| if: ${{ failure() }} |
| run: | |
| printf "You can fix the lint errors above by running\n" |
| printf " git diff -U0 "${BASE_REF?}" | python3 third_party/format_diff/format_diff.py yapf -i\n" |
| |
| clang-format: |
| runs-on: ubuntu-18.04 |
| env: |
| BASE_REF: ${{ github.base_ref }} |
| steps: |
| - name: Installing dependencies |
| run: | |
| sudo add-apt-repository -y "deb http://mirror.enzu.com/ubuntu/ eoan main universe" |
| sudo apt-get update -qq |
| sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends clang-format-9 |
| wget https://raw.githubusercontent.com/llvm-mirror/clang/master/tools/clang-format/git-clang-format -O /tmp/git-clang-format |
| chmod +x /tmp/git-clang-format |
| - name: Checking out repository |
| uses: actions/checkout@v2 |
| # We have to explicitly fetch the base branch as well |
| - name: Fetching Base Branch |
| run: git fetch --no-tags --prune --depth=1 origin "${BASE_REF?}:${BASE_REF?}" |
| - name: Running clang-format on changed source files |
| run: | |
| /tmp/git-clang-format "${BASE_REF?}" --binary=clang-format-9 --style=file |
| git diff --exit-code |
| |
| submodules: |
| runs-on: ubuntu-18.04 |
| steps: |
| - name: Checking out repository |
| uses: actions/checkout@v2 |
| - name: Checking submodules |
| run: ./scripts/git/submodule_versions.py check |
| |
| tabs: |
| runs-on: ubuntu-18.04 |
| env: |
| BASE_REF: ${{ github.base_ref }} |
| steps: |
| - name: Checking out repository |
| uses: actions/checkout@v2 |
| # We have to explicitly fetch the base branch as well |
| - name: Fetching Base Branch |
| run: git fetch --no-tags --prune --depth=1 origin "${BASE_REF?}:${BASE_REF?}" |
| - name: Checking tabs |
| run: ./scripts/check_tabs.sh "${BASE_REF?}" |
| |
| yamllint: |
| runs-on: ubuntu-18.04 |
| steps: |
| - uses: actions/checkout@v2 |
| - name: yaml-lint |
| uses: ibiqlik/action-yamllint@v1 |
| with: |
| strict: true |