[CI] Skip CI when only docs are updated (#3722)
This commit is contained in:
parent
3a6c10df6f
commit
83fb4aa3c0
|
|
@ -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
|
||||
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
|
||||
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
|
||||
done
|
||||
fi
|
||||
|
||||
exit 0
|
||||
exit 0
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
#!/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$'
|
||||
|
|
@ -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/.*$' \
|
||||
|
|
|
|||
Loading…
Reference in New Issue