diff --git a/Jenkinsfile.test b/Jenkinsfile.test new file mode 100755 index 0000000000..2bda35f0e3 --- /dev/null +++ b/Jenkinsfile.test @@ -0,0 +1,145 @@ +pipeline { + agent { + kubernetes { + inheritFrom "xuanim" + yamlFile 'misc/ci/normal.yaml' + } + } + + options { + skipDefaultCheckout() + } + + environment { + TZ="Asia/Shanghai" + + ZENTAO_RELEASE_PATH = "${WORKSPACE}/release" + XUANXUAN_SRC_PATH = "${WORKSPACE}/xuansrc" + SRC_ZDOO_PATH = "${WORKSPACE}/zdoo" + SRC_ZDOOEXT_PATH = "${WORKSPACE}/zdooext" + SRC_ZENTAOEXT_PATH = "${WORKSPACE}/zentaoext" + + // set to blank for auto-detect from ci.json + DOWNGRADE_ENABLED = "false" + DOWNGRADE_VERSIONS = "7.2,7.1,7.0,5.4" + } + + stages { + + stage("Test Code") { + + agent { + kubernetes { + inheritFrom "zentao-package build-docker xuanim" + yamlFile 'misc/ci/basic-build.yaml' + } + } + + stages { + stage("Pull") { + steps { + checkout scm + script { + env.XUANVERSION = sh(returnStdout: true,script: 'jq -r .pkg.xuanxuan.gitVersion < ci.json').trim() + env.ZENTAOEXT_VERSION = sh(returnStdout: true,script: 'jq -r .pkg.zentaoext.gitVersion < ci.json').trim() + env.ZENTAOEXT_GIT_REPO = sh(returnStdout: true,script: 'jq -r .pkg.zentaoext.gitRepo < ci.json').trim() + env.ZDOO_VERSION = sh(returnStdout: true,script: 'jq -r .pkg.zdoo.gitVersion < ci.json').trim() + env.ZDOOEXT_VERSION = sh(returnStdout: true,script: 'jq -r .pkg.zdooext.gitVersion < ci.json').trim() + } + + dir('xuansrc') { + checkout scmGit(branches: [[name: "${env.XUANVERSION}"]], + userRemoteConfigs: [[credentialsId: 'git-zcorp-cc-jenkins-bot-http', url: 'https://git.zcorp.cc/easycorp/xuanxuan.git']] + ) + } + + dir('zdoo') { + checkout scmGit(branches: [[name: "${env.ZDOO_VERSION}"]], + extensions: [cloneOption(depth: 2, noTags: false, reference: '', shallow: true)], + userRemoteConfigs: [[credentialsId: 'git-zcorp-cc-jenkins-bot-http', url: 'https://git.zcorp.cc/easycorp/zdoo.git']] + ) + } + + dir('zdooext') { + checkout scmGit(branches: [[name: "${env.ZDOOEXT_VERSION}"]], + extensions: [cloneOption(depth: 2, noTags: false, reference: '', shallow: true)], + userRemoteConfigs: [[credentialsId: 'git-zcorp-cc-jenkins-bot-http', url: 'https://git.zcorp.cc/easycorp/zdooext.git']] + ) + } + + dir('zentaoext') { + checkout scmGit(branches: [[name: "${env.ZENTAOEXT_VERSION}"]], + extensions: [cloneOption(depth: 2, noTags: false, reference: '', shallow: true)], + userRemoteConfigs: [[credentialsId: 'git-zcorp-cc-jenkins-bot-http', url: "${env.ZENTAOEXT_GIT_REPO}"]] + ) + } + + } + } + + stage("Setup Global Env") { + steps { + script { + def ximUsers = sh(returnStdout: true,script: 'jq -r .notice.users < ci.json').trim() + env.XIM_USERS = "qishiyao" + // env.XIM_GROUPS = sh(returnStdout: true,script: 'jq -r .notice.groups < ci.json').trim() + + env.PMS_VERSION = sh(returnStdout: true, script: 'cat ${SRC_ZENTAOEXT_PATH}/VERSION').trim() + env.BIZ_VERSION = sh(returnStdout: true, script: 'cat ${SRC_ZENTAOEXT_PATH}/BIZVERSION').trim() + env.MAX_VERSION = sh(returnStdout: true, script: 'cat ${SRC_ZENTAOEXT_PATH}/MAXVERSION').trim() + env.IPD_VERSION = sh(returnStdout: true, script: 'cat ${SRC_ZENTAOEXT_PATH}/IPDVERSION').trim() + + } + + } + } + + stage("Downgrade") { + stages { + stage("make Package") { + steps { + withCredentials([gitUsernamePassword(credentialsId: 'git-zcorp-cc-jenkins-bot-http',gitToolName: 'git-tool')]) { + container('package') { + sh 'mkdir ${ZENTAO_RELEASE_PATH} && chown 1000:1000 ${ZENTAO_RELEASE_PATH}' + sh 'git config --global pull.ff only' + sh 'pwd && ls -l && make ciCommon' + sh 'ls -l ${ZENTAO_RELEASE_PATH}' + } + } + + } + } + + stage("test downgrade") { + steps { + container('package') { + sh 'unzip -q ZenTaoPMS.${PMS_VERSION}.zip' + sh 'ls -l zentaopms' + sh './misc/downgrade.sh -p "$DOWNGRADE_VERSIONS" -r zentaopms -i -s -o "$ZENTAO_RELEASE_PATH" framework lib module/*' + } + + publishHTML([ + allowMissing: true, + alwaysLinkToLastBuild: false, + keepAll: true, + reportDir: env.ZENTAO_RELEASE_PATH, + reportFiles: 'downgradeReport.html', + reportName: 'DowngradeReport' + ]) + + container('xuanimbot') { + sh 'git config --global --add safe.directory $(pwd)' + sh 'test -f $ZENTAO_RELEASE_PATH/downgradeReport.html || echo "No syntax found" && /usr/local/bin/xuanimbot --title "`echo -n 6ZmN57qn5aSx6LSl | base64 --decode`" --url "${RUN_DISPLAY_URL}" --content "[PHP Syntax Report]($BUILD_URL/DowngradeReport/)" --debug --custom ' + } + + } + } + + } + } // End Downgrade + } + } + + } + +} diff --git a/misc/downgrade-report-tpl.html b/misc/downgrade-report-tpl.html new file mode 100644 index 0000000000..06a2c9761e --- /dev/null +++ b/misc/downgrade-report-tpl.html @@ -0,0 +1,116 @@ + + +
+