diff --git a/substrate/.gitlab-ci.yml b/substrate/.gitlab-ci.yml index 15dd76a380..518f48be7c 100644 --- a/substrate/.gitlab-ci.yml +++ b/substrate/.gitlab-ci.yml @@ -52,6 +52,18 @@ check-runtime: script: - ./scripts/gitlab/check_runtime.sh + +check-line-width: + stage: test + image: parity/tools:latest + <<: *kubernetes-build + only: + - /^[0-9]+$/ + script: + - ./scripts/gitlab/check_line_width.sh + allow_failure: false + + test-linux-stable: &test stage: test variables: @@ -81,7 +93,7 @@ test-linux-stable: &test check-web-wasm: stage: test image: tomaka/cargo-web:latest - allow_failure: true + allow_failure: true only: - master - /^[0-9]+$/ diff --git a/substrate/scripts/gitlab/check_line_width.sh b/substrate/scripts/gitlab/check_line_width.sh new file mode 100755 index 0000000000..ad78b24e11 --- /dev/null +++ b/substrate/scripts/gitlab/check_line_width.sh @@ -0,0 +1,49 @@ +#!/bin/sh +# +# check if line width of rust source files is not beyond x characters +# + + +BASE_BRANCH="origin/master" +LINE_WIDTH="121" +GOOD_LINE_WIDTH="101" + + +git diff --name-only ${BASE_BRANCH}...${CI_COMMIT_SHA} \*.rs | ( while read file +do + if git diff ${BASE_BRANCH}...${CI_COMMIT_SHA} ${file} | grep -q "^+.\{${LINE_WIDTH}\}" + then + if [ -z "${FAIL}" ] + then + echo "| warning!" + echo "| Lines should not be longer than 120 characters." + echo "| " + echo "| see more https://wiki.parity.io/Substrate-Style-Guide" + echo "|" + FAIL="true" + fi + echo "| file: ${file}" + git diff ${BASE_BRANCH}...${CI_COMMIT_SHA} ${file} \ + | grep -n "^+.\{${LINE_WIDTH}\}" + echo "|" + else + if git diff ${BASE_BRANCH}...${CI_COMMIT_SHA} ${file} | grep -q "^+.\{${GOOD_LINE_WIDTH}\}" + then + if [ -z "${FAIL}" ] + then + echo "| warning!" + echo "| Lines should be longer than 100 characters only in exceptional circumstances!" + echo "| " + echo "| see more https://wiki.parity.io/Substrate-Style-Guide" + echo "|" + fi + echo "| file: ${file}" + git diff ${BASE_BRANCH}...${CI_COMMIT_SHA} ${file} \ + | grep -n "^+.\{${LINE_WIDTH}\}" + echo "|" + fi + fi +done + +test -z "${FAIL}" +)