port the rest of the linters over to github actions
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/27768
Test Plan: Imported from OSS
Differential Revision: D17888973
Pulled By: suo
fbshipit-source-id: 635bef7854084404d08673d99b1bae502e0dc833
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 80f9d58..ac2c833 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -7,6 +7,92 @@
pull_request:
jobs:
+ consistent-circleci:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Setup Python
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.7.4
+ architecture: x64
+ - name: Checkout PyTorch
+ uses: actions/checkout@master
+ - name: Ensure consistent CircleCI YAML config
+ run: |
+ pip install -r requirements.txt
+ cd .circleci && ./ensure-consistency.py
+
+ validate-docker-version:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Setup Python
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.7.4
+ architecture: x64
+ - name: Checkout PyTorch
+ uses: actions/checkout@master
+ - name: Ensure Docker version is correctly deployed
+ run: .circleci/validate-docker-version.py
+
+ shellcheck-jenkins:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout PyTorch
+ uses: actions/checkout@master
+ - name: Shellcheck Jenkins scripts
+ run: |
+ sudo apt-get install -y shellcheck
+ .jenkins/run-shellcheck.sh
+
+ ensure-no-tabs:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout PyTorch
+ uses: actions/checkout@master
+ - name: Ensure no tabs
+ run: |
+ (! git grep -I -l $'\t' -- . ':(exclude)*.svg' ':(exclude)**Makefile' ':(exclude)**/contrib/**' ':(exclude)third_party' ':(exclude).gitattributes' ':(exclude).gitmodules' || (echo "The above files have tabs; please convert them to spaces"; false))
+
+ ensure-not-executable:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout PyTorch
+ uses: actions/checkout@master
+ - name: Ensure C++ source files are not executable
+ run: |
+ (! find . \( -path ./third_party -o -path ./.git -o -path ./torch/bin -o -path ./build \) -prune -o -type f -executable -regextype posix-egrep -not -regex '.+(\.(bash|sh|py|so)|git-pre-commit)$' -print | grep . || (echo 'The above files have executable permission; please remove their executable permission by using `chmod -x`'; false))
+
+ mypy-typecheck:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Setup Python
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.7.4
+ architecture: x64
+ - name: Checkout PyTorch
+ uses: actions/checkout@master
+ - name: MyPy typecheck
+ run: |
+ pip install mypy mypy-extensions
+ mypy @mypy-files.txt
+
+ cpp_doc_check:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Setup Python
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.7.4
+ architecture: x64
+ - name: Checkout PyTorch
+ uses: actions/checkout@master
+ - name: C++ docs check
+ run: |
+ sudo apt-get install -y doxygen && pip install -r requirements.txt
+ cd docs/cpp/source && ./check-doxygen.sh
+
flake8-py3:
runs-on: ubuntu-latest
steps:
@@ -47,6 +133,48 @@
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ flake8-py2:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Setup Python
+ uses: actions/setup-python@v1
+ with:
+ python-version: 2.x
+ architecture: x64
+ - name: Fetch PyTorch
+ uses: actions/checkout@master
+ - name: Checkout PR tip
+ run: |
+ set -eux
+ if [ -z "${GITHUB_HEAD_REF}" ]; then
+ # We are on master, just set the SHA from our current location
+ echo ::set-output name=commit_sha::${GITHUB_SHA}
+ else
+ # We are on a PR, so actions/checkout leaves us on merge commit.
+ # Check out the actual tip of the branch.
+ PR_TIP=$(git rev-parse HEAD^2)
+ git checkout ${PR_TIP}
+ echo ::set-output name=commit_sha::${PR_TIP}
+ fi
+ id: get_pr_tip
+ - name: Run flake8
+ run: |
+ set -eux
+ pip install flake8
+ rm -rf .circleci
+ flake8 --exit-zero > ${GITHUB_WORKSPACE}/flake8-output.txt
+ cat ${GITHUB_WORKSPACE}/flake8-output.txt
+ - name: Add annotations
+ uses: pytorch/add-annotations-github-action@master
+ with:
+ check_name: 'flake8-py2'
+ linter_output_path: 'flake8-output.txt'
+ commit_sha: ${{ steps.get_pr_tip.outputs.commit_sha }}
+ regex: '^(?<filename>.*?):(?<lineNumber>\d+):(?<columnNumber>\d+): (?<errorCode>\w\d+) (?<errorDesc>.*)'
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+
clang-tidy:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
deleted file mode 100644
index 312d407..0000000
--- a/azure-pipelines.yml
+++ /dev/null
@@ -1,87 +0,0 @@
-trigger:
-- master
-
-jobs:
-- job: consistent_circleci
- displayName: "Ensure consistent CircleCI YAML"
- pool:
- vmImage: 'Ubuntu 16.04'
- steps:
- - task: UsePythonVersion@0
- inputs:
- versionSpec: "3.7"
- - script: pip install -r requirements.txt
- - script: cd .circleci && ./ensure-consistency.py
-
-- job: validate_docker_version
- displayName: "Ensure Docker version is correctly deployed"
- pool:
- vmImage: 'Ubuntu 16.04'
- steps:
- - task: UsePythonVersion@0
- inputs:
- versionSpec: "3.7"
- - script: .circleci/validate-docker-version.py
-
-- job: shellcheck_jenkins
- displayName: "Shellcheck Jenkins scripts"
- pool:
- vmImage: 'Ubuntu 16.04'
- steps:
- - script: sudo apt-get install -y shellcheck
- - script: .jenkins/run-shellcheck.sh
-
-- job: ensure_no_tabs
- displayName: "Ensure no tabs"
- pool:
- vmImage: 'Ubuntu 16.04'
- steps:
- - task: UsePythonVersion@0
- inputs:
- versionSpec: "2.7"
- - script: (! git grep -I -l $'\t' -- . ':(exclude)*.svg' ':(exclude)**Makefile' ':(exclude)**/contrib/**' ':(exclude)third_party' ':(exclude).gitattributes' ':(exclude).gitmodules' || (echo "The above files have tabs; please convert them to spaces"; false))
-
-- job: ensure_not_executable
- displayName: "Ensure C++ source files are not executable"
- pool:
- vmImage: 'Ubuntu 16.04'
- steps:
- - task: UsePythonVersion@0
- inputs:
- versionSpec: "2.7"
- - script: (! find . \( -path ./third_party -o -path ./.git -o -path ./torch/bin -o -path ./build \) -prune -o -type f -executable -regextype posix-egrep -not -regex '.+(\.(bash|sh|py|so)|git-pre-commit)$' -print | grep . || (echo 'The above files have executable permission; please remove their executable permission by using `chmod -x`'; false))
-
-- job: python_27_lint
- displayName: "Python 2.7 Lint"
- pool:
- vmImage: 'Ubuntu 16.04'
- steps:
- - task: UsePythonVersion@0
- inputs:
- versionSpec: "2.7"
- - script: pip install flake8
- - script: |
- rm -rf .circleci
- flake8 1>&2
-
-- job: mypy_typecheck
- displayName: "MyPy typecheck"
- pool:
- vmImage: 'Ubuntu 16.04'
- steps:
- - task: UsePythonVersion@0
- inputs:
- versionSpec: "3.6"
- - script: pip install mypy mypy-extensions
- - script: mypy @mypy-files.txt
-
-- job: cpp_doc_check
- displayName: "CPP doc check"
- pool:
- vmImage: 'Ubuntu 16.04'
- steps:
- - task: UsePythonVersion@0
- inputs:
- versionSpec: "3.6"
- - script: sudo apt-get install -y doxygen && pip install -r requirements.txt
- - script: cd docs/cpp/source && ./check-doxygen.sh