提交 83fb4aa3 编写于 作者: K kezhenxu94 提交者: wu-sheng

[CI] Skip CI when only docs are updated (#3722)

上级 3a6c10df
...@@ -53,16 +53,12 @@ pipeline { ...@@ -53,16 +53,12 @@ pipeline {
} }
} }
stage('Check environment') {
steps {
sh 'env'
sh 'pwd'
sh 'ls'
sh 'git status'
}
}
stage('Test & Report') { stage('Test & Report') {
when {
expression {
return sh(returnStatus: true, script: 'bash tools/ci/ci-build-condition.sh')
}
}
steps { steps {
sh './mvnw -P"agent,backend,ui,dist,CI-with-IT" -DrepoToken=${COVERALLS_REPO_TOKEN} -DpullRequest=${ghprbPullLink} clean cobertura:cobertura verify coveralls:report install' sh './mvnw -P"agent,backend,ui,dist,CI-with-IT" -DrepoToken=${COVERALLS_REPO_TOKEN} -DpullRequest=${ghprbPullLink} clean cobertura:cobertura verify coveralls:report install'
sh './mvnw javadoc:javadoc -Dmaven.test.skip=true' sh './mvnw javadoc:javadoc -Dmaven.test.skip=true'
...@@ -70,6 +66,11 @@ pipeline { ...@@ -70,6 +66,11 @@ pipeline {
} }
stage('Check Dependencies Licenses') { stage('Check Dependencies Licenses') {
when {
expression {
return sh(returnStatus: true, script: 'bash tools/ci/ci-build-condition.sh')
}
}
steps { steps {
sh 'tar -zxf dist/apache-skywalking-apm-bin.tar.gz -C dist' sh 'tar -zxf dist/apache-skywalking-apm-bin.tar.gz -C dist'
sh 'tools/dependencies/check-LICENSE.sh' sh 'tools/dependencies/check-LICENSE.sh'
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
bash -x $(dirname "$0")/changed.sh --any-of '^pom.xml$' \ bash -x $(dirname "$0")/changed.sh --includes '^pom.xml$' \
'^Jenkinsfile-Agent-.*$' \ '^Jenkinsfile-Agent-.*$' \
'^apm-application-toolkit/.*$' \ '^apm-application-toolkit/.*$' \
'^apm-commons/.*$' \ '^apm-commons/.*$' \
......
...@@ -16,43 +16,59 @@ ...@@ -16,43 +16,59 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
patterns=() # Detect files' changed set
any_of=0 # --includes: includes these files when detecting changed file sets, defaults to ^.*$, meaning all files will be checked
# --excludes: excludes these files when detecting changed file sets
# exit with status code 0 if no changed file matches the patterns, otherwise exit with status code non 0
includes=('^.*$')
excludes=()
including=0
excluding=1
while [[ $# -gt 0 ]]; do while [[ $# -gt 0 ]]; do
case "$1" in case "$1" in
--any-of) --includes)
any_of=1 including=1
excluding=0
includes=()
;;
--excludes)
including=0
excluding=1
;; ;;
*) *)
patterns+=($1) if [[ ${including} -eq 1 ]]; then
includes+=($1)
elif [[ ${excluding} -eq 1 ]]; then
excludes+=($1)
fi
;; ;;
esac esac
shift shift
done done
[[ ${#patterns[@]} -eq 0 ]] && echo 'No file pattern is specified, exiting' && exit 1
changed_files=$(git diff --name-only origin/${ghprbTargetBranch:-master}..${ghprbActualCommit:-HEAD}) changed_files=$(git diff --name-only origin/${ghprbTargetBranch:-master}..${ghprbActualCommit:-HEAD})
test_results=()
for file in ${changed_files}; do for file in ${changed_files}; do
for pattern in ${patterns[@]}; do excluded=0
if [[ ${file} =~ ${pattern} ]]; then for exclude in ${excludes[@]}; do
test_results+=("Hit: ${file} matches pattern ${pattern}") if [[ ${file} =~ ${exclude} ]]; then
else excluded=1
test_results+=("Miss: ${file} does not match pattern ${pattern}") break
fi fi
done done
done if [[ ${excluded} -eq 1 ]]; then
echo "${file} is excluded"
IFS=$'\n' ; echo "${test_results[*]}" continue
fi
if [[ ${any_of} -eq 1 ]]; then for include in ${includes[@]}; do
for test_result in ${test_results[@]}; do if [[ ${file} =~ ${include} ]]; then
[[ ${test_result} =~ ^Hit:.+$ ]] && echo ${test_result} && exit 1 echo "${file} is changed"
exit 1
fi
done done
fi done
exit 0 exit 0
\ No newline at end of file
#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
bash -x $(dirname "$0")/changed.sh --excludes '.*.md$'
\ No newline at end of file
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
bash -x $(dirname "$0")/changed.sh --any-of '^pom.xml$' \ bash -x $(dirname "$0")/changed.sh --includes '^pom.xml$' \
'^Jenkinsfile-E2E$' \ '^Jenkinsfile-E2E$' \
'^apm-commons/.*$' \ '^apm-commons/.*$' \
'^apm-protocol/.*$' \ '^apm-protocol/.*$' \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册