Skip to content

Commit

Permalink
[CI] re-enable format check
Browse files Browse the repository at this point in the history
  • Loading branch information
stephenneuendorffer committed Jan 17, 2022
1 parent 8d72522 commit dc8edec
Showing 1 changed file with 139 additions and 127 deletions.
266 changes: 139 additions & 127 deletions .github/workflows/buildAndTest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,6 @@ jobs:
fetch-depth: 2
submodules: "true"

# We'll be running clang-tidy later in this flow.
- name: Install clang-tidy
run: |
sudo apt-get install -y clang-tidy-9
sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy \
/usr/bin/clang-tidy-9 100
- name: Install libboost
run: sudo apt-get install -y libboost-all-dev

Expand Down Expand Up @@ -83,124 +76,143 @@ jobs:
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
ninja
# # Build the repo test target in release mode to build and test.
# - name: Build (Release)
# run: |
# mkdir build_release
# cd build_release
# cmake .. \
# -DCMAKE_BUILD_TYPE=Release \
# -DLLVM_ENABLE_ASSERTIONS=OFF \
# -DCMAKE_MODULE_PATH=../cmakeModules \
# -DMLIR_DIR=../llvm/install/lib/cmake/mlir/ \
# -DLLVM_DIR=../llvm/install/lib/cmake/llvm/ \
# -DCMAKE_LINKER=lld \
# -DCMAKE_C_COMPILER=clang \
# -DCMAKE_CXX_COMPILER=clang++ \
# -DLLVM_EXTERNAL_LIT=`pwd`/../llvm/build/bin/llvm-lit
# make -j$(nproc)

# # --------
# # Lint the code.
# # -------

# # Choose the git commit to diff against for the purposes of linting.
# # Since this workflow is triggered on both pushes and pull requests, we
# # have to determine if the pull request target branch is set (which it
# # will only be on the PR triggered flow). If it's not, then compare
# # against the last commit.
# - name: choose-commit
# if: ${{ always() }}
# env:
# # Base ref is the target branch, in text form (not hash)
# PR_BASE: ${{ github.base_ref }}
# run: |
# # Run clang-format
# if [[ -z "$PR_BASE" ]]; then
# DIFF_COMMIT_NAME="HEAD^"
# else
# DIFF_COMMIT_NAME="$PR_BASE"
# fi
# echo "DIFF_COMMIT_NAME=$DIFF_COMMIT_NAME" >> $GITHUB_ENV

# # Since we did a shallow fetch for this repo, we must fetch the commit
# # upon which we be diff'ing. The last step set the ref name in the
# # $DIFF_COMMIT_NAME environment variable. When running the fetch, resolve
# # it to the commit hash and pass that hash along to subsequent steps.
# - name: git fetch base commit
# continue-on-error: true
# run: |
# if [[ ! "$DIFF_COMMIT_NAME" == *"HEAD"* ]]; then
# git fetch --recurse-submodules=no origin $DIFF_COMMIT_NAME
# DIFF_COMMIT_SHA=$( git rev-parse origin/$DIFF_COMMIT_NAME )
# else
# DIFF_COMMIT_SHA=$( git rev-parse $DIFF_COMMIT_NAME )
# fi
# echo "DIFF_COMMIT=$DIFF_COMMIT_SHA" >> $GITHUB_ENV

# # Run 'git clang-format', comparing against the target commit hash. If
# # clang-format fixed anything, fail and output a patch.
# - name: clang-format
# if: ${{ always() }}
# run: |
# # Run clang-format
# git clang-format-11 $DIFF_COMMIT
# git diff --ignore-submodules > clang-format.patch
# if [ -s clang-format.patch ]; then
# echo "Clang-format found formatting problems in the following " \
# "files. See diff in the clang-format.patch artifact."
# git diff --ignore-submodules --name-only
# git checkout .
# exit 1
# fi
# echo "Clang-format found no formatting problems"
# exit 0

# # Run clang-tidy against only the changes. The 'clang-tidy-diff' script
# # does this if supplied with the diff.
# - name: clang-tidy
# if: ${{ always() }}
# run: |
# git diff -U0 $DIFF_COMMIT | \
# clang-tidy-diff-9.py -path build_assert -p1 -fix
# git diff --ignore-submodules > clang-tidy.patch
# if [ -s clang-tidy.patch ]; then
# echo "Clang-tidy problems in the following files. " \
# "See diff in the clang-tidy.patch artifact."
# git diff --ignore-submodules --name-only
# git checkout .
# exit 1
# fi
# echo "Clang-tidy found no problems"
# exit 0

# # Upload the format and tidy patches to an artifact (zip'd) associated
# # with the workflow run. Only run this on a failure.
# - name: Upload format and tidy patches
# uses: actions/upload-artifact@v2
# continue-on-error: true
# if: ${{ failure() }}
# with:
# name: clang-format-tidy-patches
# path: clang-*.patch

# # Unfortunately, artifact uploads are always zips so display the diff as
# # well to provide feedback at a glance.
# - name: clang format and tidy patches display
# if: ${{ failure() }}
# continue-on-error: true
# run: |
# # Display patches
# if [ ! -z clang-format.patch ]; then
# echo "Clang-format patch"
# echo "================"
# cat clang-format.patch
# echo "================"
# fi
# if [ ! -z clang-tidy.patch ]; then
# echo "Clang-tidy patch"
# echo "================"
# cat clang-tidy.patch
# echo "================"
# fi
# Build the repo test target in release mode to build and test.
- name: Build (Release)
run: |
mkdir build_release
cd build_release
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DCMAKE_MODULE_PATH=../cmakeModules \
-DMLIR_DIR=../llvm/install/lib/cmake/mlir/ \
-DLLVM_DIR=../llvm/install/lib/cmake/llvm/ \
-DCMAKE_LINKER=lld \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DLLVM_EXTERNAL_LIT=`pwd`/../llvm/build/bin/llvm-lit
make -j$(nproc)
lint-repo:
name: Check code format
runs-on: ubuntu-latest
steps:
# We'll be running clang-tidy later in this flow.
- name: Install clang-tidy
run: |
sudo apt-get install -y clang-tidy-9
sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy \
/usr/bin/clang-tidy-9 100
# Clone the repo and its submodules. Do shallow clone to save clone
# time.
- name: Get repo
uses: actions/checkout@v2
with:
fetch-depth: 2
submodules: "true"

# --------
# Lint the code.
# -------

# Choose the git commit to diff against for the purposes of linting.
# Since this workflow is triggered on both pushes and pull requests, we
# have to determine if the pull request target branch is set (which it
# will only be on the PR triggered flow). If it's not, then compare
# against the last commit.
- name: choose-commit
if: ${{ always() }}
env:
# Base ref is the target branch, in text form (not hash)
PR_BASE: ${{ github.base_ref }}
run: |
# Run clang-format
if [[ -z "$PR_BASE" ]]; then
DIFF_COMMIT_NAME="HEAD^"
else
DIFF_COMMIT_NAME="$PR_BASE"
fi
echo "DIFF_COMMIT_NAME=$DIFF_COMMIT_NAME" >> $GITHUB_ENV
# Since we did a shallow fetch for this repo, we must fetch the commit
# upon which we be diff'ing. The last step set the ref name in the
# $DIFF_COMMIT_NAME environment variable. When running the fetch, resolve
# it to the commit hash and pass that hash along to subsequent steps.
- name: git fetch base commit
continue-on-error: true
run: |
if [[ ! "$DIFF_COMMIT_NAME" == *"HEAD"* ]]; then
git fetch --recurse-submodules=no origin $DIFF_COMMIT_NAME
DIFF_COMMIT_SHA=$( git rev-parse origin/$DIFF_COMMIT_NAME )
else
DIFF_COMMIT_SHA=$( git rev-parse $DIFF_COMMIT_NAME )
fi
echo "DIFF_COMMIT=$DIFF_COMMIT_SHA" >> $GITHUB_ENV
# Run 'git clang-format', comparing against the target commit hash. If
# clang-format fixed anything, fail and output a patch.
- name: clang-format
if: ${{ always() }}
run: |
# Run clang-format
git clang-format-11 $DIFF_COMMIT
git diff --ignore-submodules > clang-format.patch
if [ -s clang-format.patch ]; then
echo "Clang-format found formatting problems in the following " \
"files. See diff in the clang-format.patch artifact."
git diff --ignore-submodules --name-only
git checkout .
exit 1
fi
echo "Clang-format found no formatting problems"
exit 0
# Run clang-tidy against only the changes. The 'clang-tidy-diff' script
# does this if supplied with the diff.
- name: clang-tidy
if: ${{ always() }}
run: |
git diff -U0 $DIFF_COMMIT | \
clang-tidy-diff-9.py -path build_assert -p1 -fix
git diff --ignore-submodules > clang-tidy.patch
if [ -s clang-tidy.patch ]; then
echo "Clang-tidy problems in the following files. " \
"See diff in the clang-tidy.patch artifact."
git diff --ignore-submodules --name-only
git checkout .
exit 1
fi
echo "Clang-tidy found no problems"
exit 0
# Upload the format and tidy patches to an artifact (zip'd) associated
# with the workflow run. Only run this on a failure.
- name: Upload format and tidy patches
uses: actions/upload-artifact@v2
continue-on-error: true
if: ${{ failure() }}
with:
name: clang-format-tidy-patches
path: clang-*.patch

# Unfortunately, artifact uploads are always zips so display the diff as
# well to provide feedback at a glance.
- name: clang format and tidy patches display
if: ${{ failure() }}
continue-on-error: true
run: |
# Display patches
if [ ! -z clang-format.patch ]; then
echo "Clang-format patch"
echo "================"
cat clang-format.patch
echo "================"
fi
if [ ! -z clang-tidy.patch ]; then
echo "Clang-tidy patch"
echo "================"
cat clang-tidy.patch
echo "================"
fi

0 comments on commit dc8edec

Please sign in to comment.