Skip to content

Commit

Permalink
Move header & format check to Github Actions (facebookincubator#8546)
Browse files Browse the repository at this point in the history
Summary:
This is the first in a number of PRs to move all of our CI over to GHA.

The format and header checks will now produce a markdown summary that is rendered in the job summary. This includes a code block with copy2clipboard-button for easy application of the required changes without looking through the logs.

Closes facebookincubator#8548

Pull Request resolved: facebookincubator#8546

Reviewed By: kagamiori

Differential Revision: D53862082

Pulled By: kgpai

fbshipit-source-id: c85dc39c268b3369c0f5da1597a23a9d3d110b9c
  • Loading branch information
assignUser authored and facebook-github-bot committed Feb 16, 2024
1 parent 9882fdd commit 4243a71
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 40 deletions.
36 changes: 0 additions & 36 deletions .circleci/dist_compile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -431,38 +431,6 @@ jobs:
fuzzer_exe: "_build/debug/velox/exec/tests/velox_join_fuzzer_test"
fuzzer_args: " --seed ${RANDOM} --duration_sec 3600 --logtostderr=1 --minloglevel=0"

format-check:
executor: check
steps:
- checkout
- run:
name: Check formatting
command: |
if ! make format-check; then
make format-fix
echo -e "\n==== Apply using:"
echo "patch -p1 \<<EOF"
git --no-pager diff
echo "EOF"
false
fi
header-check:
executor: check
steps:
- checkout
- run:
name: Check license headers
command: |
if ! make header-check; then
make header-fix
echo -e "\n==== Apply using:"
echo "patch -p1 \<<EOF"
git --no-pager diff
echo "EOF"
false
fi
doc-gen-job:
executor: build
steps:
Expand Down Expand Up @@ -604,8 +572,6 @@ workflows:
- linux-build-options
- linux-adapters
- linux-presto-fuzzer-run
- format-check
- header-check
- doc-gen-job:
filters:
branches:
Expand All @@ -619,8 +585,6 @@ workflows:
- linux-pr-fuzzer-run
- linux-build-options
- linux-adapters
- format-check
- header-check
- doc-gen-job:
filters:
branches:
Expand Down
22 changes: 18 additions & 4 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,22 @@ name: macOS Build

on:
push:
paths:
- "velox/**"
- "!velox/docs/**"
- "CMakeLists.txt"
- "CMake/**"
- "third_party/**"
- ".github/workflows/macos.yml"

pull_request:
paths:
- "velox/**"
- "!velox/docs/**"
- "CMakeLists.txt"
- "CMake/**"
- "third_party/**"
- ".github/workflows/macos.yml"

permissions:
contents: read
Expand Down Expand Up @@ -48,16 +63,16 @@ jobs:
bison boost ccache double-conversion flex fmt gflags glog \
icu4c libevent libsodium lz4 lzo ninja openssl range-v3 simdjson \
snappy thrift xz xsimd zstd
echo "NJOBS=`sysctl -n hw.ncpu`" >> $GITHUB_ENV
- name: Cache ccache
uses: actions/cache@v4
with:
path: '${{ env.CCACHE_DIR }}'
key: ccache-macos-${{ matrix.os }}-${{ hashFiles('velox/*') }}
restore-keys: ccache-macos-${{ matrix.os }}

- name: Configure Build
env:
folly_SOURCE: BUNDLED
Expand All @@ -78,4 +93,3 @@ jobs:
- name: Run Tests
if: false
run: ctest -j $NJOBS --test-dir _build/debug --output-on-failure

75 changes: 75 additions & 0 deletions .github/workflows/preliminary_checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Copyright (c) Facebook, Inc. and its affiliates.
#
# 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.
name: Run Checks

on:
pull_request:

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.repository }}-${{ github.head_ref || github.sha }}
cancel-in-progress: true

jobs:
check-matrix:
name: ${{ matrix.config.name }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
config:
- { name: "License Header",
command: "header-fix",
message: "Found missing License Header(s)",
reqs: "regex"
}
- { name: "Code Format",
command: "format-fix",
message: "Found format issues",
reqs: "regex cmake-format black"
}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install Dependencies
run: |
python -m venv check_env
source check_env/bin/activate
pip install ${{ matrix.config.reqs }}
- name: Check ${{ matrix.config.name }}
run: |
source check_env/bin/activate
make ${{ matrix.config.command }}
if ! git diff --quiet; then
diff=`git --no-pager diff`
echo "${{ matrix.command.message }} in the following files:"
git --no-pager diff --name-only
echo "Check the Job summary for a copy-pasteable patch."
echo "> [!IMPORTANT]" >> $GITHUB_STEP_SUMMARY
echo "${{ matrix.config.message }}" >> $GITHUB_STEP_SUMMARY
echo "> Please apply fix using:" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`sh" >> $GITHUB_STEP_SUMMARY
echo "patch -p1 <<EOF" >> $GITHUB_STEP_SUMMARY
echo "$diff" >> $GITHUB_STEP_SUMMARY
echo "EOF" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
exit 1
fi

0 comments on commit 4243a71

Please sign in to comment.