From b8ab1fd0e3af7e98ab874bee182b98679b16e328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=BF=94?= Date: Thu, 14 May 2026 16:18:30 +0800 Subject: [PATCH] build(ci/cd): add full automated CI/CD setup scripts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增了完整的Novalon网站CI/CD自动化配置工具链,包括: 1. 一键启动脚本、主配置脚本与配置文件 2. Jenkins容器部署、Gitea Webhook配置、环境验证脚本 3. 完善的中文文档与使用示例 4. 优化了Jenkinsfile流水线,新增构建保留、并发限制、备份清理等功能 --- --selector | Bin 0 -> 79550 bytes Jenkinsfile | 471 ++++++++++++++++--------------- jenkins-logged-in.png | Bin 0 -> 61203 bytes jenkins-login.png | Bin 0 -> 35608 bytes scripts/setup-cicd/README.md | 373 ++++++++++++++++++++++++ scripts/setup-cicd/cicd.config | 36 +++ scripts/setup-cicd/cicd.sh | 62 ++++ scripts/setup-cicd/setup-cicd.sh | 68 +++++ 8 files changed, 779 insertions(+), 231 deletions(-) create mode 100644 --selector create mode 100644 jenkins-logged-in.png create mode 100644 jenkins-login.png create mode 100644 scripts/setup-cicd/README.md create mode 100644 scripts/setup-cicd/cicd.config create mode 100755 scripts/setup-cicd/cicd.sh create mode 100755 scripts/setup-cicd/setup-cicd.sh diff --git a/--selector b/--selector new file mode 100644 index 0000000000000000000000000000000000000000..50d157c9e8c91d537ef4690952754aa4f1a6613a GIT binary patch literal 79550 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%0Au?c1HnEQ@$bJd5p~0KtQxmk*ZR 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/dev/null || echo "❌ Node.js 未安装" + npm --version 2>/dev/null || echo "❌ npm 未安装" + git --version || echo "❌ Git 未安装" + ssh -V || echo "❌ SSH 未安装" + rsync --version | head -1 || echo "❌ rsync 未安装" + curl --version | head -1 || echo "❌ curl 未安装" + + echo "" + echo "--- SSH 连接测试 ---" + if ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 ${SERVER_USER}@${SERVER_IP} "hostname && whoami"; then + echo "✅ SSH 连接成功" + else + echo "❌ SSH 连接失败!请检查:" + echo " 1. SSH 密钥是否已挂载到 Jenkins 容器" + echo " 2. 生产服务器的 authorized_keys 是否包含公钥" + exit 1 + fi + + echo "" + echo "--- npm registry 测试 ---" + npm config get registry || npm config set registry ${NPM_REGISTRY} + ''' nodejs(nodeJSInstallationName: "${NODE_VERSION}") { - sh 'node --version' - sh 'npm --version' + sh 'node --version && npm --version' } } } stage('📥 安装依赖') { steps { + checkout scm + nodejs(nodeJSInstallationName: "${NODE_VERSION}") { sh ''' - rm -rf node_modules package-lock.json - npm ci --registry=${NPM_REGISTRY} --prefer-offline + echo "📦 安装项目依赖..." + + if [ -f "package-lock.json" ]; then + rm -rf node_modules package-lock.json + npm ci --registry=${NPM_REGISTRY} --prefer-offline --no-audit --no-fund || { + echo "⚠️ npm ci 失败,尝试 npm install..." + npm install --registry=${NPM_REGISTRY} --legacy-peer-deps + } + else + rm -rf node_modules + npm install --registry=${NPM_REGISTRY} --legacy-peer-deps + fi + + echo "✅ 依赖安装完成" + du -sh node_modules | awk '{print "📊 大小: " $1}' ''' } } - post { - failure { - echo "❌ 依赖安装失败!请检查 npm registry 是否可用。" - } - } } stage('🔍 代码质量检查') { parallel { - stage('ESLint 检查') { + stage('ESLint') { steps { nodejs(nodeJSInstallationName: "${NODE_VERSION}") { - sh 'npm run lint' + sh 'npm run lint || exit 1' } } } - - stage('TypeScript 类型检查') { + stage('TypeScript') { steps { nodejs(nodeJSInstallationName: "${NODE_VERSION}") { - sh 'npm run type-check' + sh 'npm run type-check || exit 1' } } } } - post { - failure { - echo "❌ 代码质量检查未通过!" - echo "💡 提示:请运行 npm run lint 和 npm run type-check 在本地修复问题" - } - } } - stage('🧪 单元测试 + 覆盖率检查') { + stage('🧪 单元测试') { steps { nodejs(nodeJSInstallationName: "${NODE_VERSION}") { sh ''' export CI=true - npm run test:coverage:check + npm run test:coverage:check || exit 1 ''' } } post { always { publishHTML(target: [ - allowMissing: false, - alwaysLinkToLastBuild: true, - keepAll: true, + allowMissing: true, reportDir: 'coverage', reportFiles: 'index.html', - reportName: 'Coverage Report (Jest)' + reportName: 'Coverage Report' ]) } - success { - echo "✅ 单元测试通过!覆盖率 ≥ 80%" - } - failure { - echo "❌ 单元测试失败或覆盖率不足 80%!" - echo "💡 请查看 Coverage Report 了解详情" - } } } - stage('🏗️ 生产构建') { - when { - anyOf { - branch 'main' - branch 'develop' - } - } + stage('🏗️ 构建 dist') { steps { nodejs(nodeJSInstallationName: "${NODE_VERSION}") { sh ''' + set -e + + echo "🧹 清理旧构建..." rm -rf .next dist + + echo "🔨 执行 Next.js 构建..." npm run build:clean - ''' - } - sh ''' - if [ -d "dist" ]; then + + echo "" + echo "✅ 构建完成!验证产物..." + + if [ ! -d "dist" ]; then + echo "❌ dist 目录不存在" + exit 1 + fi + FILE_COUNT=$(find dist -type f | wc -l) DIST_SIZE=$(du -sh dist | cut -f1) - echo "✅ 构建成功!生成了 $FILE_COUNT 个文件,总大小 $DIST_SIZE" - else - echo "❌ 构建失败:dist 目录不存在" - exit 1 - fi - ''' + echo "📊 文件数: $FILE_COUNT, 大小: $DIST_SIZE" + ''' + } } post { success { archiveArtifacts artifacts: 'dist/**', fingerprint: true } - failure { - echo "❌ Next.js 构建失败!请检查构建日志中的错误信息。" - } - } - } - - stage('🌐 E2E 测试') { - when { - allOf { - anyOf { - branch 'main' - branch 'develop' - } - expression { return params.DEPLOY_TO_PRODUCTION == true } - } - } - steps { - nodejs(nodeJSInstallationName: "${NODE_VERSION}") { - sh ''' - cd e2e && npx playwright test --config=playwright.config.ts || exit 1 - ''' - } - } - post { - always { - publishHTML(target: [ - allowMissing: false, - alwaysLinkToLastBuild: true, - keepAll: true, - reportDir: 'e2e/playwright-report', - reportFiles: 'index.html', - reportName: 'E2E Test Report (Playwright)' - ]) - } - success { - echo "✅ E2E 测试全部通过!" - } - failure { - echo "❌ E2E 测试失败!" - echo "💡 请查看 E2E Test Report 了解哪些用例未通过" - } } } @@ -217,124 +203,167 @@ pipeline { } } steps { - echo "⚠️ 即将部署到生产环境:${DOMAIN}" - sleep(time: 5, unit: 'SECONDS') + echo "⚠️ 准备部署到生产环境: ${DOMAIN}" + sleep(time: 3, unit: 'SECONDS') - sshagent(['deploy-server-ssh-key']) { - sh """ - # 备份旧版本 - ssh -o StrictHostKeyChecking=no ${SERVER_USER}@${SERVER_IP} ' - set -e - STATIC_PATH=\"${DEPLOY_ROOT}/${STATIC_DIR}\" - BACKUP_PATH=\"${DEPLOY_ROOT}/${STATIC_DIR}_backup_\$(date +%Y%m%d_%H%M%S)\" - - if [ -d \"\$STATIC_PATH\" ]; then - echo \"📦 备份旧版本到 \$BACKUP_PATH\" - cp -r \"\$STATIC_PATH\" \"\$BACKUP_PATH\" - fi - ' - - # 上传新版本 - echo "📤 上传 dist 目录到服务器..." - ssh -o StrictHostKeyChecking=no ${SERVER_USER}@${SERVER_IP} \ - \"mkdir -p ${DEPLOY_ROOT}/${STATIC_DIR}\" - - rsync -avz --delete \ - dist/ \ - ${SERVER_USER}@${SERVER_IP}:${DEPLOY_ROOT}/${STATIC_DIR}/ - - # 设置权限并重载 Nginx - ssh -o StrictHostKeyChecking=no ${SERVER_USER}@${SERVER_IP} ' - set -e - STATIC_PATH=\"${DEPLOY_ROOT}/${STATIC_DIR}\" - chown -R www-data:www-data \"\$STATIC_PATH\" 2>/dev/null || true - chmod -R 755 \"\$STATIC_PATH\" - docker exec ${NGINX_CONTAINER} nginx -s reload - ' - """ - } - - // 验证部署成功 sh """ - sleep 3 + set -e + + DIST_DIR='dist' + + echo "==========================================" + echo "📋 步骤 1: 检查 dist 目录" + echo "==========================================" + if [ ! -d "\$DIST_DIR" ]; then + echo "❌ dist 目录不存在,请先构建" + exit 1 + fi + DIST_SIZE=\$(du -sh "\$DIST_DIR" | cut -f1) + echo "✅ dist 目录大小: \$DIST_SIZE" - HTTP_STATUS=\$(curl -s -o /dev/null -w '%{http_code}' ${DOMAIN}) + echo "" + echo "==========================================" + echo "📋 步骤 2: 验证 SSH 连接" + echo "==========================================" + if ! ssh -o ConnectTimeout=5 ${SERVER_USER}@${SERVER_IP} exit; then + echo "❌ 无法连接到服务器 ${SERVER_IP}" + exit 1 + fi + echo "✅ SSH 连接验证成功" + + echo "" + echo "==========================================" + echo "📋 步骤 3: 备份旧版本" + echo "==========================================" + ssh ${SERVER_USER}@${SERVER_IP} " + set -e + STATIC_PATH='${DEPLOY_ROOT}/${STATIC_DIR}' + TIMESTAMP=\$(date +%Y%m%d_%H%M%S) + BACKUP_PATH='${DEPLOY_ROOT}/${STATIC_DIR}_backup_\${TIMESTAMP}' + + if [ -d \"\$STATIC_PATH\" ]; then + echo \"📦 备份旧版本到: \$BACKUP_PATH\" + cp -r \"\$STATIC_PATH\" \"\$BACKUP_PATH\" + echo \"✅ 备份完成\" + + echo \"🧹 清理旧备份(保留最近 ${BACKUP_RETENTION_COUNT} 个)...\" + cd '${DEPLOY_ROOT}' + ls -dt ${STATIC_DIR}_backup_* 2>/dev/null | tail -n +$((BACKUP_RETENTION_COUNT + 1)) | xargs rm -rf 2>/dev/null || true + echo \"✅ 清理完成\" + else + echo \"ℹ️ 无需备份(目录不存在),首次部署\" + fi + " + + echo "" + echo "==========================================" + echo "📋 步骤 4: 上传 dist 目录" + echo "==========================================" + ssh ${SERVER_USER}@${SERVER_IP} "mkdir -p '${DEPLOY_ROOT}/${STATIC_DIR}'" + + echo "📤 使用 rsync 同步文件..." + rsync -avz --delete "\$DIST_DIR/" ${SERVER_USER}@${SERVER_IP}:${DEPLOY_ROOT}/${STATIC_DIR}/ + + FILE_COUNT=\$(find \$DIST_DIR -type f | wc -l) + echo "✅ 上传完成: \$FILE_COUNT 个文件, 总大小 \$DIST_SIZE" + + echo "" + echo "==========================================" + echo "📋 步骤 5: 设置权限" + echo "==========================================" + ssh ${SERVER_USER}@${SERVER_IP} " + set -e + STATIC_PATH='${DEPLOY_ROOT}/${STATIC_DIR}' + chown -R www-data:www-data \"\$STATIC_PATH\" 2>/dev/null || true + chmod -R 755 \"\$STATIC_PATH\" + echo \"✅ 权限设置完成\" + " + + echo "" + echo "==========================================" + echo "📋 步骤 6: 重载 Nginx" + echo "==========================================" + ssh ${SERVER_USER}@${SERVER_IP} " + set -e + if docker exec ${NGINX_CONTAINER} nginx -t; then + docker exec ${NGINX_CONTAINER} nginx -s reload + echo \"✅ Nginx 重载成功\" + else + echo \"⚠️ Nginx 配置检测失败,尝试重启容器...\" + docker restart ${NGINX_CONTAINER} + sleep 3 + echo \"✅ Nginx 容器已重启\" + fi + " + + echo "" + echo "==========================================" + echo "📋 步骤 7: 验证部署" + echo "==========================================" + sleep 3 + + HTTP_STATUS=\$(curl -s -o /dev/null -w '%{http_code}' --connect-timeout 10 ${DOMAIN}) if [ "\$HTTP_STATUS" = "200" ]; then - echo "✅ 部署验证成功!HTTP 状态码: \$HTTP_STATUS" + echo "✅ 主页访问正常 (HTTP \$HTTP_STATUS)" else - echo "❌ 部署验证失败!HTTP 状态码: \$HTTP_STATUS" + echo "❌ 主页返回异常状态码: \$HTTP_STATUS" exit 1 fi - # 检查关键页面 - for PAGE in "/" "/contact" "/about" "/products"; do - STATUS=\$(curl -s -o /dev/null -w '%{http_code}' ${DOMAIN}\$PAGE) - if [ "\$STATUS" != "200" ]; then - echo "⚠️ 页面 \$PAGE 返回状态码 \$STATUS" + echo "" + echo "🔍 检查关键页面..." + for PAGE in "/contact" "/about" "/products" "/services"; do + STATUS=\$(curl -s -o /dev/null -w '%{http_code}' --connect-timeout 5 \${DOMAIN}\$PAGE) + if [ "\$STATUS" = "200" ]; then + echo " ✅ \$PAGE (\$STATUS)" + else + echo " ⚠️ \$PAGE (\$STATUS) - 需要关注" fi done echo "" - echo "🎉 部署完成!访问地址: ${DOMAIN}" + echo "🎉 部署成功!" + echo "📋 访问地址:" + echo " HTTP: http://${SERVER_IP}" + echo " HTTPS: https://novalon.cn" """ } post { - success { - script { - def commitMsg = sh( - script: 'git log -1 --pretty=%B', - returnStdout: true - ).trim() - - def buildUrl = env.BUILD_URL - def buildNum = env.BUILD_NUMBER - - // 发送部署成功通知(钉钉/企业微信) - echo """ - 🎉 **Novalon Website 部署成功** - - - **构建号**: #${buildNum} - - **提交信息**: ${commitMsg} - - **目标域名**: ${DOMAIN} - - **构建详情**: ${buildUrl} - """ - } - } failure { echo "❌ 部署失败!正在执行自动回滚..." - // 自动回滚到上一个备份 - sshagent(['deploy-server-ssh-key']) { - sh """ - ssh -o StrictHostKeyChecking=no ${SERVER_USER}@${SERVER_IP} ' - set -e - BACKUP_DIR=\"${DEPLOY_ROOT}\" - LATEST_BACKUP=\$(ls -dt \${BACKUP_DIR}/${STATIC_DIR}_backup_* 2>/dev/null | head -1) - - if [ -n \"\$LATEST_BACKUP\" ]; then - echo \"🔄 回滚到最近备份: \$LATEST_BACKUP\" - rm -rf \"${DEPLOY_ROOT}/${STATIC_DIR}\" - cp -r \"\$LATEST_BACKUP\" \"${DEPLOY_ROOT}/${STATIC_DIR}\" - docker exec ${NGINX_CONTAINER} nginx -s reload - echo "✅ 回滚完成" - else - echo "❌ 未找到可用的备份!需要手动介入" - exit 1 - fi - ' - """ + script { + try { + sh """ + ssh ${SERVER_USER}@${SERVER_IP} ' + set -e + LATEST_BACKUP=\$(ls -dt ${DEPLOY_ROOT}/${STATIC_DIR}_backup_* 2>/dev/null | head -1) + + if [ -n "\$LATEST_BACKUP" ]; then + echo "🔄 回滚到: \$LATEST_BACKUP" + rm -rf "${DEPLOY_ROOT}/${STATIC_DIR}" + cp -r "\$LATEST_BACKUP" "${DEPLOY_ROOT}/${STATIC_DIR}" + + if docker exec ${NGINX_CONTAINER} nginx -t; then + docker exec ${NGINX_CONTAINER} nginx -s reload + else + docker restart ${NGINX_CONTAINER} + fi + echo "✅ 回滚完成" + else + echo "❌ 未找到可用备份!需要手动介入" + exit 1 + fi + ' + """ + } catch (Exception e) { + echo "❌ 自动回滚失败: ${e.getMessage()}" + echo "🚨 需要立即手动介入!" + } } } } } - - stage('🧹 清理工作空间') { - steps { - cleanWs(cleanWhenNotBuilt: false, - deleteDirs: true, - notFailBuild: true) - } - } } post { @@ -342,34 +371,18 @@ pipeline { script { def result = currentBuild.result ?: 'SUCCESS' def duration = currentBuild.durationString.replace(' and counting', '') - def color = result == 'SUCCESS' ? 'good' : (result == 'UNSTABLE' ? 'warning' : 'danger') echo """ - ==================================== - 📊 Jenkins 构建报告 - ==================================== - - **项目**: ${env.JOB_NAME} - - **构建号**: #${env.BUILD_NUMBER} - - **结果**: ${result} - - **耗时**: ${duration} - - **详情**: ${env.BUILD_URL} - ==================================== - """ - - // 发送通知(可根据需要集成钉钉、企业微信、邮件等) - if (result != 'SUCCESS') { - mail ( - to: 'dev-team@novalon.cn', - subject: "❌ Novalon Website 构建失败: #${env.BUILD_NUMBER}", - body: """构建结果: ${result} - -请尽快查看构建详情: -${env.BUILD_URL} - -构建日志: -${env.BUILD_URL}console""" - ) - } +╔════════════════════════════════════════════╗ +║ 📊 Jenkins Pipeline 报告 ║ +╠════════════════════════════════════════════╣ +║ 项目: ${env.JOB_NAME} +║ 构建号: #${env.BUILD_NUMBER} +║ 结果: ${result} +║ 耗时: ${duration} +║ 详情: ${env.BUILD_URL} +╚════════════════════════════════════════════╝ +""" } } @@ -378,11 +391,7 @@ ${env.BUILD_URL}console""" } failure { - echo "❌ Pipeline 执行失败!请检查上述错误信息。" - } - - aborted { - echo "⚠️ Pipeline 被中止!" + echo "❌ Pipeline 执行失败!请查看日志。" } } } diff --git a/jenkins-logged-in.png b/jenkins-logged-in.png new file mode 100644 index 0000000000000000000000000000000000000000..ad72a8970a497936828335be8e65cddb51c086ae GIT binary patch literal 61203 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 NO;tS=#Dm}d_%ET&B|HEC literal 0 HcmV?d00001 diff --git a/jenkins-login.png b/jenkins-login.png new file mode 100644 index 0000000000000000000000000000000000000000..d3a87c52c7e671aefc7b372005a40c135da7e0af GIT binary patch literal 35608 zcmcG$Wn9y5*f%@`MNvdSL`j2A=>~&NX^@z7ch^7+L>Nen4wYuWq(-Mo!|3kr7>thR z*vMu+`Ji|0o!lqdH#;$TL&R;Rb+{YD2X5t2(i4JlsW`*9ejK3)y-?*A(kOx z83MTnk(YX<>6N@Od0lthhN^jYM#R(eka%gUbMk+_61Y9V*HU4_7j(m6jGee&!y{2D z(Q)jhVWm&4{B+jOw_~EJ*k-XOPhR4ISB1LT+3= zVRa4f(beORTmRpGVd?6#L1s`h>)Ct#tL{FRfq{@kjIoW4jj@A;wXuV_^-n3rXy|cO zvV^Yb7umBYTa4Z!yy_`PwlH0fn3H)K~){6CD{(YFv^c~H?v|* zcDRTdS|VtuM14BDs0689EUc&VvrNO4K3tr&{AQjw5{~)a;#1U6v2%zTU2tq+VWb~LGNs!En4v* zN1e;@x6DfU>a0O`BZoR4^X@$HJ?*VKQ(c`+CmWw_`?FL;{nuiy&Ish|BUMM}B9}tF z!tXTc^IjOX9ns3?v(OrzA|l~)wvP*K@kxs)HtR0txT~kWgh6n73D%;PC%99%4BWNO zaR2SjlWQ4gNZP*BVQ@8PLTh@BSp18LXHN9mf%y3NWDE-XJH2GNP<=1&>o-1+WB<|I z7Bb`E=2q+2Z;a1SiJV#J#s5DqbLRHtJ1#C0iV*o4cY=S>ImjCM=C$KTmqq;ji>4hu zXg8lq3VYo|qTZN6#jf0>j`RM$RwaKqTGC}{?4z$I{+pDicdkCvP33G71^s}5K+OG& zi??eeN4z>nsc;Emsw}^Y{Sf4OisCZubTyU93=&@!Q&C-6Fy$gQmTDw{F{+y^Hoe@e zj_8!|ryeXr{tJm@l<)m-#{ZXWnI~(ks7I$2BjXq19G%RO@A4fP&W$*E(}3xJ>9YQ3 zM{37ib`uo^<{jPcYkZzAd3sL*Rs|iWzKm`j?e=RS1y)8~zb7SCUtRx9oM^y>`ssl< zc9DaeUtz8@0V`lP;xm|sBf9rE{iQ0cSOy~VSU`4c;)-QvG%_$Eo~UfshHeJ!n<$l(*6$M*2_QXj^t{rPgJ_HNHUr>yAhJm z8kRa$imcC*HGiK_|AEpeKkm=QWTrfMRpT%@#&)$mFmg}Nh(g0t4#VQU#;3Bmeg95y z+pzVal;^T4e0DuH&HI&m6iRW9I3m8zg=JdJ^R3D10|v$L^74b5lzZMeWnDpf=UfJ^ zT?l^r_b(r1b4A3jB~L$1FOPsW56G8qi2oc9s6xXt*|$-;71R=T#=DdFMv|~Ix4k7A zLymgDZ{tFVUOP&8~fBwweu8?!H!mJqUb|jA3D1+d(1YOTeIs5)mrzT zTy0w*G*cyIsU;#MS=iPjQ$eLM4qEGzuDs5PNv*B$IFG5VO~ICXoi@I4C@3gE)JH}{ zL`*b?-`6_!hPgnD);Bh|txfRQc-=FH&)mv?Nr$Mv@LZQcoViOhJK!-sT;?*=FEWPa zuc(z+D%9Ffx2^PUMC--tRJlVpe{(iutgIACeMOIjs+_?QvNdrd9 z+aGT;Z;N*{`==$8LNr?e@ylUy?ebXzKDg*3Pi@rH6U0<{i^pQu`n?k)l8A@|o+Xxb zO`D6eTm|~Q-Cc4269XwuCsPxXD5i*yWn~B~>TDgtK7O#$Yidoe7^{hXWmsW)>cGoe z!eg$;Dmimreb^CKU^9^c+ke!Hpd)*Xcf>?@t=18@)~y|j*S>7xXrUO|IVJH2V`SZ5 zn)vH9TmMJ>R_%C;Hm-er-^Z4%<9=<@KRCI+%V}iu-Eh2TqE-Qh%jS6C9dt4XQ;nau!mbaq&wA#%0U+SK0eS-Dx2^E~GC4d7e~FbI?rT1E?bl)W^Pv?@`d;juT2mf-bHd_ro@u#4&@6mTQvK>Zxq@v zNl9Tyz4vb4(AdEGWoY{aZJH8CJ~`c=by1ABFY;uuO9^3eTntaGTpJB7-<@yX7(^dz z=pk{AQ)~wUYi~#s5+-Y1b&f~FX~l)j+c(HsRO?~qjJ88c#i!Yh(}h@-cnSZh-TCav zNpZ1>NsSDpsaoIQr*E36CES!~)l0MoL&#+1(t2$7u-HPQ+DK=#-6&}s7c?5-ce1d$ zwPaMHO|FNj^ACA(}-}3A;CMS)MK(k#!aeJ7DgC)xmxe zowtemXJOufCd{^Jpw}mNL;H^OyU<2MsxGQwd))}ej-gFM|GA-%zyN{f38~!!tR^ha zc|PkQhdQjk**^3krUo{@k6;^afv2cvI0;Ki)|>nz@;{nETOM9$WOo<5t1Q&*CF+A> z^OQm#azg9;l;hcA&SfU6%j0AxD_|uua0T}@O{99}S!D^u!KOHKwYX88U%{g<-3n<> zUY*g5AIjAsEIT7>dphD!1Hp>ru=6j-O){qL2b>G^J-3MmFdm>ba4tTPO4DD0h9pj-GtpV3dg9#*L{OXHoquvGrklR_%)X2`!}0M+z>Z zFS_-}_4B6d3X=XON@L#CL|jItH8N!pw8yliB;Vmb4}07%U!e7RwHZEcGh8@SVks-1Q7oqL;FL-b(+X`U zHb*82STiYVi=gbM>!erQ+kKUWMvFAod(#P#gld|33-r|~U+z9O-FUwKSfq42BZPNg z6h{>s$E@~u5cg_~?~7V416G|oWKwF^(>JT*k&T}e}(kscPCqG zYnH(*rG&nKf(VuD=&Crg_Y6^O6c^-dLo&ZzKi())&s6w%#_Ej~X}6F5Qc&fw9WO4c z4N6eZ^}SrrTCafG9*M<*u|en&Yv5qNKcaRKKi zU4L)&$8tDtO_uxa;7+}$PFfW?HuVL!-Bw3jd%o9^vxz7t@%ZjE+^;@x(7wjl zEF4AZALn~g#h^g;-1mM;M4V3kCy8(8$z_DsEDNnS*C)ji&uhx6OPaqXioe>}=uIDp zFd04@oDZaC5W~m!5v$^US~V*zcwU5;Zv*4g>{)C5S~qSy62kmas8-@bvOk2mg2SD6R8s@S-ZB>jyDp=A zv0llID2_Lt-%U_s-^Jg6hJk1vaegz%0IhzYdt@qv43-Z)!M#fssl~LfLBq$h)_Q&} z1|2I7q6y}Y_hMW5Z1#Ul)mAfK)y8K(%#qFMGAedcH9r@EUWneI+$BolZ8v#{`?6jv>W9?!Z%*w{!w6{7v-Q)rr{@x8CF^P1h8C=wS2XG%v;y8ZfSF( zb=)FnMf?2cn8)6*xX`PR4X`Rzn&=#h*v!=i=1*)32V}G&l#&rc+4rm`D4V z8)Z~`g>f)ODe!TY6C6#JcE}Z<@YCpsg#(=aw)Wi{LBYd&p5UaG+K(Gzr!wT9lM@&U z=jLnV?vlw)dDOC(JngQFc|`8_@>#?sU2^NAu*|hWztGQ%o^BV{VOW_59MFqz1^yO_ zw?$JTDl-wg-_&IyO#e#GBcnfUY^0O4#+bK;t%j#mpXk`^^fbLag3oWq39nqQqGouv z>$3R#qJ}9vO`FQX!otXCitsMAnk5a5WbpX4>)0Ile2eOI-8tr{FG;{YjoY*id%iZ1 zE8(UqStjnV5d*Lzv*Zt@RU6N(2`XNTo%EJrmDDlYu*OEgE4uaaXo)Kxc35cJe8*eB zacXvc9!VfQ4e-DN(2#b2k=ND1)`uOno=yLJ)1vSIrCFo<&rzjs^KH+dB`l$?me6yp z=Z_GTB&=rtao?AfXkMLz&2bNLubsDJsi~>AmpHU99!ehHTQT_;ib@ggmsg`4)hmGQ zbx!oXTV5}iGXJ%wm2ZcSe@2lo(p*y1Iq)-WIN^DOB-^|T< zKY~tja}XK5_pOZ7z#MJ-QJe6tgEE5kv&cjOsawzoBb1<^V8HGiVppvg%dW?Ba&khc zSWQAJ)}B22LNjF}cdXhmI^DDzpnvnunAz3-Wnou~=2v&aY03wXdPdnGFtBy2-hJ$%=Yk##DEAZZCfP z^<_RyIb3)20hV2KSbzI1A`YqICMR+7KMR506jZif)Y7N-8d$^;?ETuNCg9jh2wtc&+A$4OL_) zEc)E0==w_fPeLPW-+M16re|w&^SN)q+7Oc4OfHR1tn5l_=}ENe{l%#-VA=F(b{PY$ zgPmLSWrVmcv?hwUE65XoP7`^z{t3Qf7L8a%IaWVUyB3SoL7g5@@>vWJB$P#%NIJL2 z7pr8({OHLz2%+RyOFh@8@13aeu2!4(`S9U`G9{X5>J|A(;53SZkMj~k@=4&<&6{sw zdBZ3p{#-qS{#Y#^%EvIEiN-yKXu}+KE|-* zYc%~qzrHeltqx(L&&aq=j&82vp+mc8->REsx50ODaqGT}Fmkqy+6NaG7wTUSd3I+< z&Kg-t7iCZk7h^!s?%Y3jSJ!&a?Yd7!@=I8a|LQmltyl6;;YO;2sh`>Khky^|bYd|- z$b1mn^xQkU^GtnmiG1=aZ+*^=a%-y(Jy*vhe0t&)qF~!owVr1Kc#Ff>UG6X@a#0!0 z#pUB;JYBn~3hVPD=R+}nyFDGZ0G#G6g&MpmI#YU8M_baB%eJnurisl-+vt~zgXDxMaeLivvUt8Xo#_^7Gnej*fG;QmQ2}*n8OTN3GK7lXe)6QJjh967QFwqr z8NZ!#dqq)@EL7|L`#^XahRv{{?YV4MXP0Sn*zwvRQkI0yTrLfEj9vU6kuP$VORheW z)gnJ0o+R-0LL}0Q$R(3i3m^Y7!GEhj(tl0!tHcLbm1YR(2_XTksB;shrDbySO_Wp! zd#946Qd;5F^+M`Y#Qg=M!q?6nb0r5<>G;@+SsR|IZ&Wk5}3yQz!!$2>}O@ zyVLObHhI3@+Ct4}N&jN|>HZ>BXoWlpwTQtFxyTv+d^i3y+mL|kv} zGk&4l?p*D^s-ch>-;q&W7AR>tR_Db9`&z_->v`Yvf8cLOO{m##-|ny*EiTZV&HwKT z>!J~vpUV)RvE^p(=T)Cd#++HTV-7-95qFaX%)dD|V=$QUj`hBOq1TBXerGNEpCwW` zKnpbA*_fYyULG)^*I3+GJQ{TmzN!ObW+06}n~SpmimEz6Y+GZm8uqsx0G1(pYlHuD zY13F-zqiln#VWo@LSo|BsIIikrj9vQC;ZWW8Zae2_lRot@ap+x{tu?g;iiesz9up3 zFVr{4e+pgCr}|Bow*M~tQ^@~$is0Idt0!KP-E8>p2g*+%S0V<4@5BF#VifAYy|pqW^IFx$zfNE^Iz0GI1^ zNZ?yeql$ciz6_PeD&;Anhg!@~Masi%NrNgkGy;Jr#lLn9XbF{Wt9hA<+If>U16B{j zeM);s9EVC_gEr&{r`mwaS)A<~*ulYpc3q|==EJ&yK=5?7Ojo<@5c}P_zvJVw{zSRH zKxUiSmIi7(N1~+TD!8Vm8YDoqx5%0${g-M)lAfBLI1Q0W!X^O4mGg1at8SZ|{PWK| zx3<<0W%Q9zHPL*7jNzMqZj^NJT^g#B*?*zr0%#H%k%OJa^d5hY%_)??T{_|Wj~+d$ z`k0WQ_eaJ(W_w{l^Nqvaa)-FnTdqZ@H{jCmM$siD%Bf}=*SQX3VC|`EIKibvW zIs$>5QGycsQjUa9LSQHultPNCH!Ug!gAjK03^|YemG0M{lj-plm+rv6Y^I1VD=8Cy zRF*5!G*m}wBW{t&0FKSnIP;MM1aP_m+4F?(H$!o=hM0n z0e!QQa^NeCXe{Y1cJ|IccKDE;mRZv~kW#s|QjrwSqbL>)3lxwsC;>RUSkis#;c=-W z1P7lgRh&vOuCU6gS1I=vRUC3vFsK<$wYIdx3HSBfPOEpy_1Lso!%kKosy>o5q!jn@ zVAsg{WFquTXSh_pdX1k|SQt@URCL#0YU?jh3?S3RTJvtJ>WWjT!lredXvgVvr^suM zd9ySwIQN#64U5gplShgY`3g`{*KXeqeK8JJ$QjgxAJPfDmO_3N!GPH*f& z!kAnvdmGTa2M*AiwhS*R=@_2sDMwY(xPH+!1_;P;QUrMxc*V!;<2e1ZRg>7@4wE7| zs^<%e^1`NH-2R19bw8e}u|5Uh-vaZ_Yrc6CpAh{?7xOPvN9GP4iXg>T%*%<6AxB2s zeJ#E_g?Q5k5KG~b>ApVo5I=xV08_cYkw3iN)pfZTTzuAkBVfJNa`e$C-TjNzYUub4 zaDZn}jppAWFGB_FC$wvHrE^E?0xn0A|rN7sf*jfKUFy^u`0)xU=B<#ks$)>=;y*S}sbCgmcuU;p4!}PpnbOGwyZ!tQ6CSHk2yjr~ zG~qO&S{ZWQ32Ot^OY`$=&b4o!GO=}3^j(PtBu$jJ*ehfsQe#*&lnp=nMCO5;6Intv zyku2rZmab%b#;l0#m*d*k;+qBs8#y$jS zoWpsBS|QY!w0icpKf;^?x!cl68O`5S+2O)zIERM5bV$|u?;VWvMl19n$1>#gxq!kLH%43=-qUCCLq_>f4M7BdY>;P?RSbpB9jOX!2 zkHwx-7S~AaDsXZtBDF64a4g>Z1J66P*4ViEfBtE)=t|6qZU3m_f9ak;2??BjwEzqA z_B}O|+h(SV&26d;TL2=4FOJd;gNuU0%dSDb`gM2j(a?m-j|uy)86*i9!h`vM7RRU7 z^hv!TM*Vk&REYi>_7V55v||_J44|)44yQA6r^j=fGE2%x++A8jkT<_h))|7*$)%5;3e`Un|f%xw>-c z6lQUsYv;aeY-y35w0-ik*7%P$Qk&xr?UTU{+1&BtnTt2`*v5~tT>1h``zPkmHwaeT z;IKi{-qs}5g7&SrL>L1r;iaR7o+W-+O)<8+;+QhhO#2-K)0I=j2w!8XCLrnU0* zF%R}R^Cg{6q2{OM2!Ml{kTdKTFEv>jMRaQl00gBq=)i z{6;m-YcZqJq2%qc9IjHdqBaXs$MKj%{%9;OP|r@L42PSQ*H|Ds%U>zDx|h1xXk5q< z=y$&~gH#eZjB36|YqXIvgpQ1j$6f1F>M3*X2{^sJ|g(OfhNBL!H+NNoah}j;t>)#Oaf>RnvgPa2U-L@hzj{pgXNx zvz9utCW?ZSRz88JvQ#x$NF(Qm@!t*N_3~6vPZp_+I2z({bV1}rxx=J=&kw}A;;HK8 z_bZ5X+{p<}KUE0!&hYZXNBw99Mf(SIkN;N-z;-D|rDkKO<>EMTK)Lfhr2SYrY>d}ox08=PoDz{J z=qU8uYUAPYk)+Rt*;wh9BCU65yJTV48w@L9`HB3L!Iv32sFa)jpF> zBBGzmYE#5z^4nhQp-?UethV+SQ#W|^&Be5WvESw8w!Ot_050975sT#taF~CSrA%eJ zk*j_8GDR^CMHyY7_LV`gPd)LJD)B3oc#bzq+jyNuzezBSPJhclVvaUcbIJmX_6Zfd2}Ecy8=8%V6-Eo?92 z>65TYv+S3k>zCV2{p{Wvt!8=irBs1HDS_u5jUu~B@(7J6n#V})xHmnUG!Q;G0a_@u z#!H%}(f9Ay5BB2%Izfi?qq=z7K(-2$)LFPO!<&skECMKlMW!xBYj0|hM7)%9^`(`#b z4RgLnJGWsMU7zQoArMKOvNiJHJFC2At&iM?a_!pg(a`_Sg%eYu@6t_4YUjrf+G?sl zYa|Khp!U;T23C%@w|DNQB}Re{?uY&Rc-|Ou{q_<(L+!^PHs5Nps-s=&GWoXuQAdSF zHYV9|xbCxacv{NMSF6;aAb$*#+Hg^3P_7djD>Bi*Uuph#g) zTg4MieNBx|gLgyBpuXAR1(`uKCirLP_zP^|ewSaVxC%Q9^-5+pMsF9FKx+j9>eMA9 z>WCm`Pkj#7?Cvy_EVJjSmALGXNx*{{rU9_EoQzLY^$ zxvx8X4bIo)R?V7GTzK=;Hul<25@hU6&$WFR?$RTkXn~8y$N2o@GK}JUZgJBwRpgYb zHS5Oo*q@&_^dAnRrimn|_}>l8WDnd>t(hIE-hTT}K}F%O6rA$kNbGVH0rJLsEwo)i z97j@rjvAG_HmrlE>k3$^@5Ev2e54@HCGjB_l#xe~9$OpI#}kNc<`N4|p$9{UkaVFU z(>7Y?kVZ>Pvg!l3Dm5W$8dm^XegisHJVwUk0j>7X7}F_C{T@^h!=t3Ej54T{*z6$Z ziRIL*e1B0q?%CZ|=w`WmY{SR#_D5&ng?Ms1BI?TnzMz26sI{%}@-$h$-JK)mX;Pya zugvatjESYC?M6b!(_o+7P7NlEn9n}FYN`QP(+^9q#~KRMqCPGYBe~}%o;sF`(7D++ zE%3v;bli0|WkgS#Q;0VI5SAmlIc>(f5B4Owyr9>z&s1aE;v2(sp5ATj=%{v>d}x!p z(OB`S)n8txBQrwhgkpvv)OfM^diQ*b%HsfjtSxr0pTkH@<5nI7bY)FS z0W|uG1{DL*!V+WXbW>zOx5<9zd0ic&Cv9-aGN<;jHbnalzixnhJ@zSw^w>A@lrgj| zY#R3}t?tcW-=_)N4Pn2(1eMBhLqFwugWi1EkK9&Tb8+`mV;HcCCCwguYOHBL=B8yv z#N)F+V^k|jwGEC^I9NI+)wIfL-&TBb$Wec*L>(yIgis!*nbtXmZ#m1k-N{8yyyW-R z5bMDCOpwFKZyb&)yWYD~ zli*)C4bnX+i>HlnC4|iK#+^q$jijwd`?U6!Rkb2+=DaKTbq&&xhS3b+10IR!@5|o_ z)=Kja*er+y1wC;_)~$9sz9e)aOEo6;QbRSK+fS*el9<&tGJl@|9t^0L5X#NEucC0H zaA+NehllqN+Kd$Q_n8ijD`%)~KTK`q`NI%JTqEC0bnC?Ri}#IvG>JME$JVbutz@#QaYm~16IY2;j!!t z%JVUM9i!ap)dHM%U~S?W{f^K9Ccw;_K?36TU^4)9gH{~aMR!fAX1qd~u;lmDFZJD4 zdNj^60F{czq87NmGg77pqO=BxsYC{LZu9W+vS~6y(a1gtmqm*X*Hmh3pyC+q#z7ff2!pXk}@KG6p1f(G}fIb z!TCo(u3@sqdpQY-z?{;G-^fWvvm1(7ZcY5-7Z)=aa-iH48EMOv`4-d0@Q6xQ(0VXW z@$zDFd&(7v600+f>9T;~aSCpA#QiG#YieENgJaYyrZ47RdrL#Y?!%|wpX(*Q%0S8ceB-!Ql+64qO9i)YxnvB*Q-Y3qRc?%#w>#G9oD3XQg{t z+=1)QR&C@$CJ9b2Ljct(c-+4%FM=5U`SJsg`?_YFKb}5%i|?+bVP<=IgbPu$52wRY z=i{ZWq_I52tP}mHtr%>gwC=o$Me@hHK_Z*Bcd$yVyw30U5~DO?UaeL*BNh{+=xqlO zP@|T}od>6h_^UMSpzW&{^%aY_=2gD| z=n1k~`$wbxA@!gn%{D z5nCYPwWFIhWw5LrBkEnI}Oa$1J5e&#`Bb z`9gTtx;e}nl;!DKOVhc(w-(u2YrHjX)n7)UE(uO_?jJ9l!V6mB^QPA4GI=>l z5}Iq?vD7N*$IxWvtBra$oxT0Gt#pm_IPj*(k#N}0pNp59oe5;WWFrJTIv+5syfNO( z+ANm3XbV2lVGkMW@7J&wv>8|e{A2C@B0Vc+_z=D zVn2yVL4Y?!Jqk5YCu|?Qdw!@j`nF#TeT|qp<5wr0uHOE!aez1o#C!gYoQry{N?}?W zHXQm;6e-!eq81%A&EOkd?O~5X!#{ptd$mkN&Y29wgUn#|61t%}sGQ#V&# znn{(G=GPl3lZ=dstw~V==r7s|ey5qQ29?DqHxCwQU0Ch;@@;ZpwZ1SX`m^h}*dEuN zQeELw8oz#SYKc7 z*M?Lt3zFKMp(p~3c>440IQXjPV*B;xH+~GM@?8SH2d|r-R5{JM;fzE@^>bUa^UQ>D zTDqKPfV;{&MGWty>%G{E)&vhg$Ip2+6^h zAL-;TWDGT!4?A7F*ZFV*aA#8!;B2cheb#2Vyh}SF8g$OkLM!TFvpof$^^88>$Cka6 zI7RB%9?fOW29|>0W=FW+G3j$p`Qolv{*pa~IG~Q@oYPQ$llQCjKixoZG1(60k7g(? z3tT5!(z0B%g^Rt=D`uZ>zFVMCUd5iPkv$3^mgA%Z701}}_hdfnC33c<&m+r*l`gfQ z@Cgeo#S7R|r@zEMDiIPM{Qe1T)|NkW+||(`Y8>R&{4}3YnQ~NkrQvZp$ZepHdH7}k zg$;ec@)j@>pSrDI(!7*{xrb-R9Ux5#8+M;W8A>8J4cDGYw|Dr^t9K^}@=GPS0kNwq z(fx&l^iH)(iU`xKx4+(}H@jytb6j?sN~u2dxyi}EJYe3D%Ak+#eB76f5MtHR$feRj z4!w{nXVXz7K-~#u^p)G5^nIdAe|mkvRrXe#l=H3QwkU>Mu=^jTWBs%xU}t<5osW#~ za%2(Ew9uX;+e081?2)>7-HH7D1^Uwx*~2T%aD5y7{b8LC?#rw}u}daMxJ{z%%Q=!f zlf^xI;$fKN$|r}E9W})rFY8?3G@{adj#rIA!k;tq{c+z=l@{5tI)YUTdo%Uh4anus zqT&veN7=nWMScCGO4n>TX`Nu`=h6Sw0xs;UD%go@ZBZZ*<2Y4ABjjWj99}?w&ids( zUZ{c-hhAO|rSetOz@lr;p4fxKs2Gb~1d>e+F>g4fJf|{fmuH8-+U%>V4IcBfy1!(M zfj$>LXh+QVXLYak_P+><%g+X^%vRg+``}XB`gazM8zI%JecAF!0`6x=Pf?N!@uCZ= zI_VaRJN+n9O&)i*&Yx0B-yXEZNCwCBm=k5=uTnsED8BwB+5z$`5rvCF0;{x?Oo!Ly z#h;I-BoQ>zDf}x7Q;tMNc-n2LtHtKFIr!1ZVr8mCH%XPF8MqdMP*?i?nWx&VEssOr)2Pox5g*0qC;_`5r9S=yB zq2(Z8QMRth8y@w-b}8tY^lcc2$jRyH>B&i(C7f?zXkdWvXyhM|l4pZC8CEj-@lQz< z)BQg4=htS{MUDgFH-f}Aaj6i+rh`33A|`$5SmDI~Doi2la=-PP!9KUJUOHJqR? zqeA=-qw_>{zqikpfEW+5hQ#-IGGDMshJR9@Z?xbts!{m<#OP~FyC;{VWQy}pdppmI z7jJ_K{ZLUTJrE-m7^0&U^V*;NnB>Qx5JewZbP2MjnXJ!P1UreNw~aivs}#ZnAAbMO z(X9Unw4eWMx-&+l|K=GWe1ZR0e7dVQ`M+!h{{Q$Euppq5MbHTXA}P4&=)BmD)8nOJ z9y>VL6g@7hs;ms|x6CZ*0J-@GphOS=->2spVX%q+>0K>YD$q)BtGo-KoV5plSdO4# zT>k$4zB;TkPiq~-XclL8)s92`wnJUl7W9tGjH=xDlO-mrNrZeBK3&n6tK~ns)gH%n zzIFaFiXoKwvds5zOVD=c6>DF6#A9KX8NzZ|wR9P^i)YiPbDBB2AP9Ua9r_Stgpb&+ zY|l#}kdYtEBmO0;_%1{4`19>psyN5-Dx_H(YjF)Q8Ps1ZrA=|ac=6&0e|yRuk%x_D z!epcfyVil?9Loh&Jn3ix`Pxrjv48=9w7lzPA{RLDgaKcTP;`7&F(=>0%98T9B2W4_j275C7Cj#

G8Q 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 /var/log/cicd-check.log 2>&1 +``` + +### 2. 版本控制配置文件 + +将 `cicd.config` 提交到 Git(注意移除敏感信息或使用环境变量): + +```bash +git add scripts/setup-cicd/ +git commit -m "chore: add automated CI/CD setup scripts" +git push origin main +``` + +### 3. 团队协作 + +新成员入职时只需运行: + +```bash +git clone +cd novalon-website +./scripts/setup-cicd/cicd.sh --full +``` + +即可在 5 分钟内完成完整的开发环境搭建! + +--- + +## 📞 技术支持 + +如遇到问题: + +1. 运行 `./scripts/setup-cicd/cicd.sh --verify` 查看详细诊断 +2. 检查日志:`docker logs jenkins` +3. 查看 Gitea Webhook 的 Recent Deliveries +4. 访问 Jenkins 系统日志:Manage Jenkins → System Log + +--- + +**版本**: 1.0.0 +**最后更新**: 2026-05-12 +**适用环境**: Docker + Jenkins 2.400+ + Gitea 1.19+ diff --git a/scripts/setup-cicd/cicd.config b/scripts/setup-cicd/cicd.config new file mode 100644 index 0000000..deeb1dd --- /dev/null +++ b/scripts/setup-cicd/cicd.config @@ -0,0 +1,36 @@ +#!/bin/bash + +JENKINS_URL="http://ci.f.novalon.cn:8080" +JENKINS_HOST="ci.f.novalon.cn" +JENKINS_PORT=8080 +JENKINS_CONTAINER_NAME="jenkins" +JENKINS_IMAGE="jenkins/jenkins:lts-jdk17" + +GITEA_URL="https://git.f.novalon.cn" +GITEA_HOST="git.f.novalon.cn" + +GITEA_USERNAME="zhangxiang@novalon.cn" +GITEA_PASSWORD="qerqek-cavxaC-5jupri" +GITEA_TOKEN="" + +JENKINS_ADMIN_USER="zhangxiang" +JENKINS_ADMIN_PASSWORD="Vaptyc-jadpe1-fywmaj" +JENKINS_API_TOKEN="" + +SERVER_IP="139.155.109.62" +SERVER_USER="root" +DEPLOY_ROOT="/home/novalon/docker-app" +STATIC_DIR="novalon-static" +NGINX_CONTAINER="novalon-nginx-secure" +DOMAIN="https://novalon.cn" + +REPO_OWNER="novalon" +REPO_NAME="novalon-website" +JOB_NAME="novalon-website-ci-cd" +WEBHOOK_TOKEN="novalon-website-ci-token" + +NODE_VERSION="18" +NPM_REGISTRY="https://registry.npmmirror.com" +BACKUP_RETENTION_COUNT=3 + +DOCKER_NETWORK="novalon-network" diff --git a/scripts/setup-cicd/cicd.sh b/scripts/setup-cicd/cicd.sh new file mode 100755 index 0000000..c5aa0e2 --- /dev/null +++ b/scripts/setup-cicd/cicd.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +set -e + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +echo "╔════════════════════════════════════════════╗" +echo "║ 🚀 Novalon CI/CD 一键配置启动器 ║" +echo "╚════════════════════════════════════════════╝" +echo "" + +case "$1" in + --full|-f) + echo "📋 模式: 完整安装(重建容器 + 全部配置)" + exec bash "${SCRIPT_DIR}/setup-cicd.sh" --full + ;; + --jenkins|-j) + echo "📋 模式: 仅配置 Jenkins(工具 + 凭据 + 插件)" + exec bash "${SCRIPT_DIR}/setup-cicd.sh" --jenkins + ;; + --webhook|-w) + echo "📋 模式: 仅配置 Gitea Webhook" + exec bash "${SCRIPT_DIR}/setup-cicd.sh" --webhook + ;; + --verify|-v) + echo "📋 模式: 验证当前配置" + source "${SCRIPT_DIR}/lib/utils.sh" + source "${SCRIPT_DIR}/lib/verify.sh" + load_config_or_defaults + run_all_verifications + exit 0 + ;; + --clean|-c) + echo "📋 模式: 清理所有配置" + read -p "⚠️ 确定要删除 Jenkins 容器和所有配置吗?(y/N): " confirm + if [[ "$confirm" =~ ^[Yy]$ ]]; then + docker stop jenkins 2>/dev/null || true + docker rm jenkins 2>/dev/null || true + docker volume rm jenkins_data 2>/dev/null || true + echo "✅ 清理完成" + fi + exit 0 + ;; + --help|-h|*) + echo "用法: $0 [选项]" + echo "" + echo "选项:" + echo " --full, -f 完整安装(重建 Docker 容器 + 安装工具 + 配置凭据 + 创建任务 + 配置 Webhook)" + echo " --jenkins, -j 仅配置 Jenkins(安装工具、插件、凭据,创建 Pipeline 任务)" + echo " --webhook, -w 仅配置 Gitea Webhook" + echo " --verify, -v 验证当前配置是否正确" + echo " --clean, -c 清理 Jenkins 容器和数据" + echo " --help, -h 显示帮助信息" + echo "" + echo "示例:" + echo " $0 --full # 首次使用或需要完全重置时" + echo " $0 # 快速配置(不重建容器)" + echo " $0 --verify # 检查所有配置是否正常" + echo "" + exit 0 + ;; +esac diff --git a/scripts/setup-cicd/setup-cicd.sh b/scripts/setup-cicd/setup-cicd.sh new file mode 100755 index 0000000..b4be1d7 --- /dev/null +++ b/scripts/setup-cicd/setup-cicd.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +set -e + +echo "╔════════════════════════════════════════════╗" +echo "║ 🚀 Novalon Website CI/CD 自动配置工具 ║" +echo "║ Version: 1.0.0 ║" +echo "║ Mode: Docker + Shell (参考 deploy-dist.sh) ║" +echo "╚════════════════════════════════════════════╝" +echo "" + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" + +CONFIG_FILE="$SCRIPT_DIR/cicd.config" + +source "$SCRIPT_DIR/lib/utils.sh" +source "$SCRIPT_DIR/lib/jenkins-setup.sh" +source "$SCRIPT_DIR/lib/gitea-setup.sh" +source "$SCRIPT_DIR/lib/verify.sh" + +load_config_or_defaults + +show_banner "开始自动化配置流程" + +check_prerequisites || exit 1 + +if [ "$1" == "--full" ] || [ "$1" == "-f" ]; then + echo "📋 模式: 完整安装(包含 Docker 容器重建)" + setup_jenkins_container + install_jenkins_tools +elif [ "$1" == "--jenkins" ] || [ "$1" == "-j" ]; then + echo "📋 模式: 仅配置 Jenkins" + install_jenkins_tools +elif [ "$1" == "--webhook" ] || [ "$1" == "-w" ]; then + echo "📋 模式: 仅配置 Gitea Webhook" +else + echo "📋 模式: 快速配置(跳过容器重建)" +fi + +wait_for_jenkins_ready + +setup_jenkins_credentials +setup_jenkins_global_tools +install_required_plugins +create_pipeline_job +setup_gitea_webhook + +echo "" +show_banner "配置完成!开始验证..." + +run_all_verifications + +echo "" +echo "╔════════════════════════════════════════════╗" +echo "║ ✅ 自动化配置完成! ║" +echo "╠════════════════════════════════════════════╣" +echo "║ ║" +echo "║ 🌐 Jenkins: ${JENKINS_URL} ║" +echo "║ 🔗 Gitea: ${GITEA_URL} ║" +echo "║ 🚀 任务名: ${JOB_NAME} ║" +echo "║ ║" +echo "║ 下一步操作: ║" +echo "║ 1. 访问 Jenkins 并点击 'Build Now' ║" +echo "║ 2. 推送代码到 main 分支测试 Webhook ║" +echo "║ 3. 勾选 DEPLOY_TO_PRODUCTION 测试部署 ║" +echo "║ ║" +echo "╚════════════════════════════════════════════╝"