milvus/.github/workflows/jenkins-checker.yaml
Jenny Li 78d57a19a0
[skip ci] Add jenkins check in github actions (#12278)
Signed-off-by: Jenny Li <jing.li@zilliz.com>
2021-11-25 16:17:16 +08:00

56 lines
1.7 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/**'
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 -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