mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-06 00:20:18 +01:00
Summary: PRs https://github.com/pytorch/pytorch/issues/53652 and https://github.com/pytorch/pytorch/issues/54693 attempted to increase the consistency of our choice of commit (head vs merge) for CI on PRs, and have so far been unsuccessful. This PR takes a less ambitious approach to the problem by clarifying the choice in one specific way (see the following paragraph) and documenting it in `CONTRIBUTING.md`. In addition to documentation, this PR also removes the current behavior of our GHA jobs that checkout the PR tip instead of the merge commit. At first glance, this behavior seems to increase consistency (by eliminating the special-case for `ghstack` PRs), but in reality, it actually just means that for non-`ghstack` PRs, the question "Which commit is used in CI?" has *two* answers instead of just one; see the description of https://github.com/pytorch/pytorch/issues/53652 for more details. Once merged, this PR will unblock other PRs that add modify our GHA workflows in breaking ways, such as https://github.com/pytorch/pytorch/issues/54737. Pull Request resolved: https://github.com/pytorch/pytorch/pull/54967 Test Plan: None. Reviewed By: walterddr, seemethere Differential Revision: D27435913 Pulled By: samestep fbshipit-source-id: 405fb419cf015cf88107d5eb2498cfb5bcb7ce33
46 lines
1.5 KiB
YAML
46 lines
1.5 KiB
YAML
name: clang-format
|
|
|
|
on:
|
|
pull_request:
|
|
|
|
jobs:
|
|
clang-format:
|
|
runs-on: ubuntu-18.04
|
|
steps:
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.x
|
|
architecture: x64
|
|
- name: Fetch PyTorch
|
|
uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0 # deep clone, to allow us to use git merge-base
|
|
- name: Run clang-format
|
|
run: |
|
|
set -eu
|
|
# This is necessary to get the same results regardless of whether the
|
|
# PR was opened directly or from a forked repo. See: `9f890a92` for more info.
|
|
git remote add upstream https://github.com/pytorch/pytorch
|
|
git fetch upstream "$GITHUB_BASE_REF"
|
|
BASE_SHA=${{ github.event.pull_request.base.sha }}
|
|
HEAD_SHA=${{ github.event.pull_request.head.sha }}
|
|
MERGE_BASE=$(git merge-base $BASE_SHA $HEAD_SHA)
|
|
|
|
# only run clang-format on allowlisted files
|
|
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
|
|
echo "| clang-format failures found! Run: "
|
|
echo "| tools/clang_format_ci.sh ${MERGE_BASE} "
|
|
echo "| to fix this error. "
|
|
echo "| For more info, see: https://github.com/pytorch/pytorch/wiki/clang-format "
|
|
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
|
|
|
|
tools/clang_format_ci.sh ${MERGE_BASE}
|
|
|
|
GIT_DIFF=$(git diff)
|
|
if [[ -z $GIT_DIFF ]]; then
|
|
exit 0
|
|
fi
|
|
echo $GIT_DIFF
|
|
exit 1
|