From 78d57a19a08f922ffb2706f40c008b54fdcb5f9a Mon Sep 17 00:00:00 2001 From: Jenny Li Date: Thu, 25 Nov 2021 16:17:16 +0800 Subject: [PATCH] [skip ci] Add jenkins check in github actions (#12278) Signed-off-by: Jenny Li --- .github/workflows/jenkins-checker.yaml | 56 ++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 .github/workflows/jenkins-checker.yaml diff --git a/.github/workflows/jenkins-checker.yaml b/.github/workflows/jenkins-checker.yaml new file mode 100644 index 0000000000..7e412dae8c --- /dev/null +++ b/.github/workflows/jenkins-checker.yaml @@ -0,0 +1,56 @@ +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 + + \ No newline at end of file