Merge pull request #28747 from taosdata/test/main-chr-TD14758

test:add docs ci in jenkinsfile2
This commit is contained in:
WANG Xu 2024-11-13 10:15:52 +08:00 committed by GitHub
commit 5cdeadee38
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 135 additions and 34 deletions

View File

@ -1,9 +1,11 @@
import hudson.model.Result import hudson.model.Result
import hudson.model.*; import hudson.model.*;
import jenkins.model.CauseOfInterruption import jenkins.model.CauseOfInterruption
docs_only=0
node { node {
} }
file_zh_changed = ''
file_en_changed = ''
file_no_doc_changed = ''
def abortPreviousBuilds() { def abortPreviousBuilds() {
def currentJobName = env.JOB_NAME def currentJobName = env.JOB_NAME
def currentBuildNumber = env.BUILD_NUMBER.toInteger() def currentBuildNumber = env.BUILD_NUMBER.toInteger()
@ -29,7 +31,7 @@ def abort_previous(){
if (buildNumber > 1) milestone(buildNumber - 1) if (buildNumber > 1) milestone(buildNumber - 1)
milestone(buildNumber) milestone(buildNumber)
} }
def check_docs() { def check_docs(){
if (env.CHANGE_URL =~ /\/TDengine\//) { if (env.CHANGE_URL =~ /\/TDengine\//) {
sh ''' sh '''
hostname hostname
@ -40,39 +42,94 @@ def check_docs() {
cd ${WKC} cd ${WKC}
git reset --hard git reset --hard
git clean -f git clean -f
rm -rf examples/rust/
git remote prune origin git remote prune origin
git fetch git fetch
''' git checkout ''' + env.CHANGE_TARGET + '''
script {
sh '''
cd ${WKC}
git checkout ''' + env.CHANGE_TARGET + '''
'''
}
sh '''
cd ${WKC}
git remote prune origin
git pull >/dev/null git pull >/dev/null
git fetch origin +refs/pull/${CHANGE_ID}/merge git fetch origin +refs/pull/${CHANGE_ID}/merge
git checkout -qf FETCH_HEAD git checkout -qf FETCH_HEAD
''' '''
def file_changed = sh (
file_zh_changed = sh (
script: ''' script: '''
cd ${WKC} cd ${WKC}
git --no-pager diff --name-only FETCH_HEAD `git merge-base FETCH_HEAD ${CHANGE_TARGET}`|grep -v "^docs/en/"|grep -v "^docs/zh/" || : git --no-pager diff --name-only FETCH_HEAD `git merge-base FETCH_HEAD ${CHANGE_TARGET}`|grep "^docs/zh/" || :
''',
returnStdout: true
)
file_en_changed = sh (
script: '''
cd ${WKC}
git --no-pager diff --name-only FETCH_HEAD `git merge-base FETCH_HEAD ${CHANGE_TARGET}`|grep "^docs/en/" || :
''',
returnStdout: true
)
file_no_doc_changed = sh (
script: '''
cd ${WKC}
git --no-pager diff --name-only FETCH_HEAD `git merge-base FETCH_HEAD ${CHANGE_TARGET}`|grep -v "^docs/en/"|grep -v "^docs/zh/"|grep -v "*.md" || :
''', ''',
returnStdout: true returnStdout: true
).trim() ).trim()
if (file_changed == '') { echo "file_zh_changed: ${file_zh_changed}"
echo "docs PR" echo "file_en_changed: ${file_en_changed}"
docs_only=1 echo "file_no_doc_changed: ${file_no_doc_changed}"
} else {
echo file_changed
}
env.FILE_CHANGED = file_changed
} }
} }
def build_pre_docs(){
if (env.CHANGE_URL =~ /\/TDengine\//) {
sh '''
hostname
date
env
'''
sh '''
cd ${DOC_WKC}/${td_repo}
git reset --hard
git clean -f
git remote prune origin
git fetch
git checkout ''' + env.CHANGE_TARGET + '''
git pull >/dev/null
git fetch origin +refs/pull/${CHANGE_ID}/merge
git checkout -qf FETCH_HEAD
'''
sh '''
cd ${DOC_WKC}/${tools_repo}
git reset --hard
git clean -f
git fetch
git remote prune origin
git checkout ''' + env.CHANGE_TARGET + '''
git pull >/dev/null
'''
}
}
def build_zh_docs(){
sh '''
cd ${DOC_WKC}/${zh_doc_repo}
# git pull
yarn ass local
yarn build
'''
}
def build_en_docs(){
sh '''
cd ${DOC_WKC}/${en_doc_repo}
# git pull
yarn ass local
yarn build
'''
}
def pre_test(){ def pre_test(){
sh ''' sh '''
hostname hostname
@ -153,6 +210,7 @@ def pre_test(){
''' '''
return 1 return 1
} }
def pre_test_build_mac() { def pre_test_build_mac() {
sh ''' sh '''
hostname hostname
@ -173,6 +231,7 @@ def pre_test_build_mac() {
date date
''' '''
} }
def pre_test_win(){ def pre_test_win(){
bat ''' bat '''
hostname hostname
@ -284,6 +343,7 @@ def pre_test_win(){
git log -5 git log -5
''' '''
} }
def pre_test_build_win() { def pre_test_build_win() {
bat ''' bat '''
echo "building ..." echo "building ..."
@ -313,6 +373,7 @@ def pre_test_build_win() {
''' '''
return 1 return 1
} }
def run_win_ctest() { def run_win_ctest() {
bat ''' bat '''
echo "windows ctest ..." echo "windows ctest ..."
@ -322,6 +383,7 @@ def run_win_ctest() {
time /t time /t
''' '''
} }
def run_win_test() { def run_win_test() {
bat ''' bat '''
echo "windows test ..." echo "windows test ..."
@ -344,28 +406,67 @@ pipeline {
WK = '/var/lib/jenkins/workspace/TDinternal' WK = '/var/lib/jenkins/workspace/TDinternal'
WKC = '/var/lib/jenkins/workspace/TDinternal/community' WKC = '/var/lib/jenkins/workspace/TDinternal/community'
WKPY = '/var/lib/jenkins/workspace/taos-connector-python' WKPY = '/var/lib/jenkins/workspace/taos-connector-python'
DOC_WKC = '/root/doc_ci_work'
td_repo = 'TDengine'
zh_doc_repo = 'docs.taosdata.com'
en_doc_repo = 'docs.tdengine.com'
tools_repo = 'taos-tools'
} }
stages { stages {
stage('check') { stage ('check doc file changed') {
agent{label " slave1_47 || slave1_48 || slave1_49 || slave1_50 || slave1_52 || slave1_59 || slave1_63 || worker03 || slave215 || slave217 || slave219 || Mac_catalina "}
steps {
check_docs()
}
}
stage ('pre for build docs') {
when { when {
allOf { beforeAgent true
not { expression { env.CHANGE_BRANCH =~ /docs\// }} expression { env.CHANGE_BRANCH =~ /(?i)doc.*/ || file_zh_changed != '' || file_en_changed != '' }
} }
agent{label "doc_build_0_30"}
steps {
build_pre_docs()
}
}
stage('build Docs') {
when {
beforeAgent true
expression { env.CHANGE_BRANCH =~ /(?i)doc.*/ || file_zh_changed != '' || file_en_changed != '' }
} }
parallel { parallel {
stage('check docs') { stage('build zh docs') {
agent{label " slave1_47 || slave1_48 || slave1_49 || slave1_50 || slave1_52 || slave1_59 || slave1_63 || worker03 || slave215 || slave217 || slave219 || Mac_catalina "} agent{label "doc_build_0_30"}
when {
expression { file_zh_changed != '' }
}
steps { steps {
check_docs() build_zh_docs()
}
}
stage('build en docs') {
agent{label "doc_build_0_30"}
when {
expression { file_en_changed != '' }
}
steps {
build_en_docs()
} }
} }
} }
post {
unsuccessful {
error('build docs stage failed, terminating pipeline.')
}
}
} }
stage('run test') { stage('run test') {
when { when {
allOf { allOf {
not { expression { env.CHANGE_BRANCH =~ /docs\// }} not { expression { file_no_doc_changed == '' }}
expression { docs_only == 0 }
} }
} }
parallel { parallel {
@ -420,7 +521,7 @@ pipeline {
script { script {
sh ''' sh '''
mkdir -p ${WKDIR}/tmp/${BRANCH_NAME}_${BUILD_ID} mkdir -p ${WKDIR}/tmp/${BRANCH_NAME}_${BUILD_ID}
echo "''' + env.FILE_CHANGED + '''" > ${WKDIR}/tmp/${BRANCH_NAME}_${BUILD_ID}/docs_changed.txt echo "''' + file_no_doc_changed + '''" > ${WKDIR}/tmp/${BRANCH_NAME}_${BUILD_ID}/docs_changed.txt
''' '''
sh ''' sh '''
cd ${WKC}/tests/parallel_test cd ${WKC}/tests/parallel_test
@ -570,4 +671,4 @@ pipeline {
) )
} }
} }
} }