mirror of
https://gitee.com/milvus-io/milvus.git
synced 2024-12-05 05:18:52 +08:00
6375a223d1
Signed-off-by: Jenny Li <jing.li@zilliz.com>
57 lines
1.8 KiB
YAML
57 lines
1.8 KiB
YAML
name: Jenkins Checker
|
|
# Lint Jenkinsfile and related groovy files
|
|
|
|
|
|
on:
|
|
pull_request:
|
|
# file paths to consider in the event. Optional; defaults to all.
|
|
paths:
|
|
- 'build/ci/jenkins/**.groovy'
|
|
- '.github/workflows/jenkins-checker.yaml'
|
|
jobs:
|
|
check-jenkinsfile:
|
|
name: Jenkinsfile Checker
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Validate Jenkinsfile
|
|
shell: bash
|
|
run: |
|
|
JENKINS_URL=https://ci.milvus.io:18080/jenkins
|
|
# JENKINS_CRUMB is needed if your Jenkins controller has CRSF protection enabled as it should
|
|
JENKINS_CRUMB=`curl "$JENKINS_URL/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,\":\",//crumb)"`
|
|
|
|
function validate(){
|
|
local file_path=${1:-Jenkinsfile}
|
|
response=$(curl --max-time 10 --retry 5 --retry-delay 0 --retry-max-time 40 -X POST -H $JENKINS_CRUMB -F "jenkinsfile=<${file_path}" $JENKINS_URL/pipeline-model-converter/validate)
|
|
|
|
if [[ ${response} =~ "Error" ]]
|
|
then
|
|
echo " ${response}"
|
|
echo "Validate ${file_path} failed !"
|
|
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
for file in build/ci/jenkins/*
|
|
do
|
|
if [ -f "$file" ]
|
|
then
|
|
echo "$file"
|
|
file_name=$(basename "$file")
|
|
|
|
if echo "${file_name}" | grep -q -E '\.groovy$'
|
|
then
|
|
echo "Validate groovy file ${file_name}"
|
|
validate $file
|
|
elif [[ "${file_name}" == "Jenkinsfile" ]]
|
|
then
|
|
echo "Validate Jenkinsfile"
|
|
validate $file
|
|
fi
|
|
fi
|
|
done
|
|
|
|
|