Require fixed version of clang-format (#3454)
* Force a fixed required version of clang-format * Update github action to install clang-format 12 instead of 10 * Update GitHub actions agent OS to Ubuntu 20.04 instead of 18.04 * More verbose CI script
This commit is contained in:
parent
75149ef6b5
commit
89e6f44f61
13 changed files with 92 additions and 69 deletions
8
.github/workflows/analyzers.yml
vendored
8
.github/workflows/analyzers.yml
vendored
|
@ -4,19 +4,19 @@ on: [push, pull_request]
|
|||
|
||||
jobs:
|
||||
clang_format:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
||||
steps:
|
||||
- uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e
|
||||
- name: Installing clang-format 10
|
||||
- name: Installing clang-format 12
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
run: sudo apt-get install clang-format-10
|
||||
run: sudo apt-get install clang-format-12
|
||||
- name: Clang Format
|
||||
run: ci/check-commit-format.sh
|
||||
|
||||
cmake_format:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
||||
steps:
|
||||
- uses: actions/checkout@50fbc622fc4ef5163becd7fab6573eac35f8462e
|
||||
|
|
4
.github/workflows/beta_artifacts.yml
vendored
4
.github/workflows/beta_artifacts.yml
vendored
|
@ -41,7 +41,7 @@ jobs:
|
|||
AWS_DEFAULT_REGION: us-east-2
|
||||
|
||||
linux_job:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-20.04
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: tag
|
||||
|
@ -66,7 +66,7 @@ jobs:
|
|||
AWS_DEFAULT_REGION: us-east-2
|
||||
|
||||
linux_docker_job:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-20.04
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: tag
|
||||
|
|
4
.github/workflows/coverage.yml
vendored
4
.github/workflows/coverage.yml
vendored
|
@ -17,7 +17,7 @@ jobs:
|
|||
LCOV: 1
|
||||
COMPILER: gcc
|
||||
BOOST_ROOT: /tmp/boost
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
TEST_USE_ROCKSDB: [0, 1]
|
||||
|
@ -48,7 +48,7 @@ jobs:
|
|||
parallel: true
|
||||
finish:
|
||||
needs: coverage_test
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: coverallsapp/github-action@8cbef1dea373ebce56de0a14c68d6267baa10b44
|
||||
with:
|
||||
|
|
2
.github/workflows/develop.yml
vendored
2
.github/workflows/develop.yml
vendored
|
@ -6,7 +6,7 @@ on:
|
|||
- develop
|
||||
jobs:
|
||||
linux_job:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
|
||||
with:
|
||||
|
|
4
.github/workflows/live_artifacts.yml
vendored
4
.github/workflows/live_artifacts.yml
vendored
|
@ -40,7 +40,7 @@ jobs:
|
|||
AWS_DEFAULT_REGION: us-east-2
|
||||
|
||||
linux_job:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-20.04
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: tag
|
||||
|
@ -65,7 +65,7 @@ jobs:
|
|||
AWS_DEFAULT_REGION: us-east-2
|
||||
|
||||
linux_docker_job:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-20.04
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: tag
|
||||
|
|
4
.github/workflows/test_network_artifacts.yml
vendored
4
.github/workflows/test_network_artifacts.yml
vendored
|
@ -41,7 +41,7 @@ jobs:
|
|||
AWS_DEFAULT_REGION: us-east-2
|
||||
|
||||
linux_job:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-20.04
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: tag
|
||||
|
@ -66,7 +66,7 @@ jobs:
|
|||
AWS_DEFAULT_REGION: us-east-2
|
||||
|
||||
linux_docker_job:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-20.04
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: tag
|
||||
|
|
2
.github/workflows/tests.yml
vendored
2
.github/workflows/tests.yml
vendored
|
@ -48,7 +48,7 @@ jobs:
|
|||
COMPILER: [gcc, clang-6]
|
||||
RELEASE:
|
||||
- ${{ startsWith(github.ref, 'refs/tags/') }}
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-20.04
|
||||
env:
|
||||
COMPILER: ${{ matrix.COMPILER }}
|
||||
TEST_USE_ROCKSDB: ${{ matrix.TEST_USE_ROCKSDB }}
|
||||
|
|
|
@ -1,44 +1,16 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
FOUND=0
|
||||
set -e
|
||||
|
||||
# hard requirement of clang-format 10.0.0
|
||||
CF_EXECUTABLE='
|
||||
clang-format-10.0.0
|
||||
clang-format-10.0
|
||||
clang-format-10
|
||||
clang-format
|
||||
'
|
||||
source "$(dirname "$BASH_SOURCE")/detect-clang-format.sh"
|
||||
source "$(dirname "$BASH_SOURCE")/common.sh"
|
||||
|
||||
# check different executable strings
|
||||
for executable in $CF_EXECUTABLE; do
|
||||
if type -p "$executable" >/dev/null; then
|
||||
clang_format="$executable"
|
||||
FOUND=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
"$REPO_ROOT/ci/update-clang-format"
|
||||
|
||||
# alert if not installed
|
||||
if [ $FOUND == 0 ]; then
|
||||
echo "clang-format not found, please install 10.0.0 first"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# check if old version is found
|
||||
if ! "$clang_format" --version | grep '10.0.0' &>/dev/null; then
|
||||
echo "clang-format version 10.0.0 is required, please update it"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
REPO_ROOT=$(git rev-parse --show-toplevel)
|
||||
|
||||
"${REPO_ROOT}/ci/update-clang-format"
|
||||
|
||||
RESULT=$(python $REPO_ROOT/ci/git-clang-format.py --diff --extensions "hpp,cpp")
|
||||
if [ "$RESULT" != "no modified files to format" ] && [ "$RESULT" != "clang-format did not modify any files" ]; then
|
||||
python $REPO_ROOT/ci/git-clang-format.py --diff --extensions "hpp,cpp"
|
||||
clang_format_result=$(python "$REPO_ROOT/ci/git-clang-format.py" --diff --extensions "hpp,cpp")
|
||||
if [[ $clang_format_result != "no modified files to format" ]] &&
|
||||
[[ $clang_format_result != "clang-format did not modify any files" ]]; then
|
||||
python "$REPO_ROOT/ci/git-clang-format.py" --diff --extensions "hpp,cpp"
|
||||
echo
|
||||
echo "Code formatting differs from expected - please run ci/clang-format-all.sh"
|
||||
exit 1
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
CLANG_FORMAT="clang-format"
|
||||
if [ $(builtin type -p "$CLANG_FORMAT") ]; then
|
||||
REPO_ROOT=$(git rev-parse --show-toplevel)
|
||||
cd "$REPO_ROOT"
|
||||
./ci/update-clang-format
|
||||
find nano -iname '*.h' -o -iname '*.hpp' -o -iname '*.cpp' | xargs "$CLANG_FORMAT" -i
|
||||
else
|
||||
echo "'$CLANG_FORMAT' could not be detected in your PATH. Do you have it installed?"
|
||||
fi
|
||||
source $(dirname $BASH_SOURCE)/detect-clang-format.sh
|
||||
source $(dirname $BASH_SOURCE)/common.sh
|
||||
|
||||
cd "$REPO_ROOT"
|
||||
./ci/update-clang-format
|
||||
find nano -iname '*.h' -o -iname '*.hpp' -o -iname '*.cpp' | xargs "$CLANG_FORMAT" -i
|
||||
|
|
|
@ -1,11 +1,19 @@
|
|||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
if ! command -v cmake-format &>/dev/null; then
|
||||
source "$(dirname "$BASH_SOURCE")/common.sh"
|
||||
|
||||
if ! [[ $(builtin type -p cmake-format) ]]; then
|
||||
echo "pip install cmake-format to continue"
|
||||
exit 1
|
||||
fi
|
||||
REPO_ROOT=$(git rev-parse --show-toplevel)
|
||||
cd "${REPO_ROOT}"
|
||||
find "${REPO_ROOT}" -iwholename "${REPO_ROOT}/nano/*/CMakeLists.txt" -o -iwholename "${REPO_ROOT}/CMakeLists.txt" -o -iwholename "${REPO_ROOT}/coverage/CMakeLists.txt" | xargs cmake-format -i
|
||||
|
||||
cd "$REPO_ROOT"
|
||||
|
||||
find "$REPO_ROOT" -iwholename "$REPO_ROOT/nano/*/CMakeLists.txt" \
|
||||
-o \
|
||||
-iwholename "$REPO_ROOT/CMakeLists.txt" \
|
||||
-o \
|
||||
-iwholename "$REPO_ROOT/coverage/CMakeLists.txt" \
|
||||
| xargs -i{} cmake-format -i {}
|
||||
|
|
5
ci/common.sh
Normal file
5
ci/common.sh
Normal file
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
REPO_ROOT=$(git rev-parse --show-toplevel)
|
41
ci/detect-clang-format.sh
Normal file
41
ci/detect-clang-format.sh
Normal file
|
@ -0,0 +1,41 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
is_clang_format_usable()
|
||||
{
|
||||
if [[ $(builtin type -p $1) ]]; then
|
||||
local output=$($1 --version)
|
||||
if [[ $output =~ ^(.)*clang-format\ version\ $2(.)*$ ]]; then
|
||||
echo "0"
|
||||
else
|
||||
echo $output
|
||||
fi
|
||||
else
|
||||
echo "1"
|
||||
fi
|
||||
}
|
||||
|
||||
CLANG_FORMAT=""
|
||||
CLANG_FORMAT_VERSION="12"
|
||||
|
||||
clang_format_attempts=("clang-format"
|
||||
"clang-format-$CLANG_FORMAT_VERSION")
|
||||
|
||||
for itr in ${clang_format_attempts[@]}; do
|
||||
result=$(is_clang_format_usable $itr $CLANG_FORMAT_VERSION)
|
||||
if [[ $result == "0" ]]; then
|
||||
CLANG_FORMAT=$itr
|
||||
break
|
||||
elif [[ $result == "1" ]]; then
|
||||
continue
|
||||
else
|
||||
echo "Detected '$itr' with version '$result' " \
|
||||
"(different than '$CLANG_FORMAT_VERSION'), skipping it."
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -z $CLANG_FORMAT ]]; then
|
||||
echo "No 'clang-format' of version '$CLANG_FORMAT_VERSION' could be detected in your PATH."
|
||||
exit 1
|
||||
fi
|
|
@ -1,10 +1,10 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
ci_dir="$(dirname "${BASH_SOURCE[0]}")"
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
cd "${ci_dir}/.."
|
||||
source "$(dirname "$BASH_SOURCE")/common.sh"
|
||||
|
||||
cd "$REPO_ROOT"
|
||||
|
||||
retval='1'
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue