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

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

上级 3a6c10df
......@@ -53,16 +53,12 @@ pipeline {
}
}
stage('Check environment') {
steps {
sh 'env'
sh 'pwd'
sh 'ls'
sh 'git status'
}
}
stage('Test & Report') {
when {
expression {
return sh(returnStatus: true, script: 'bash tools/ci/ci-build-condition.sh')
}
}
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 javadoc:javadoc -Dmaven.test.skip=true'
......@@ -70,6 +66,11 @@ pipeline {
}
stage('Check Dependencies Licenses') {
when {
expression {
return sh(returnStatus: true, script: 'bash tools/ci/ci-build-condition.sh')
}
}
steps {
sh 'tar -zxf dist/apache-skywalking-apm-bin.tar.gz -C dist'
sh 'tools/dependencies/check-LICENSE.sh'
......
......@@ -16,7 +16,7 @@
# See the License for the specific language governing permissions and
# 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-.*$' \
'^apm-application-toolkit/.*$' \
'^apm-commons/.*$' \
......
......@@ -16,43 +16,59 @@
# See the License for the specific language governing permissions and
# limitations under the License.
patterns=()
any_of=0
# Detect files' changed set
# --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
case "$1" in
--any-of)
any_of=1
--includes)
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
shift
done
[[ ${#patterns[@]} -eq 0 ]] && echo 'No file pattern is specified, exiting' && exit 1
changed_files=$(git diff --name-only origin/${ghprbTargetBranch:-master}..${ghprbActualCommit:-HEAD})
test_results=()
for file in ${changed_files}; do
for pattern in ${patterns[@]}; do
if [[ ${file} =~ ${pattern} ]]; then
test_results+=("Hit: ${file} matches pattern ${pattern}")
else
test_results+=("Miss: ${file} does not match pattern ${pattern}")
excluded=0
for exclude in ${excludes[@]}; do
if [[ ${file} =~ ${exclude} ]]; then
excluded=1
break
fi
done
done
IFS=$'\n' ; echo "${test_results[*]}"
if [[ ${any_of} -eq 1 ]]; then
for test_result in ${test_results[@]}; do
[[ ${test_result} =~ ^Hit:.+$ ]] && echo ${test_result} && exit 1
if [[ ${excluded} -eq 1 ]]; then
echo "${file} is excluded"
continue
fi
for include in ${includes[@]}; do
if [[ ${file} =~ ${include} ]]; then
echo "${file} is changed"
exit 1
fi
done
fi
done
exit 0
\ No newline at end of file
exit 0
#!/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 @@
# See the License for the specific language governing permissions and
# 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$' \
'^apm-commons/.*$' \
'^apm-protocol/.*$' \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册