ci: use scoped SSH credentials for web version pushes

这个提交包含在:
XuqmGroup 2026-07-27 12:34:27 +08:00
父节点 c3dfb5eddb
当前提交 c56eb1abff
共有 4 个文件被更改,包括 40 次插入26 次删除

18
Jenkinsfile vendored
查看文件

@ -148,14 +148,16 @@ print('versions.json updated: ${svcName}=${svcVer}')
stage('Commit Version') { stage('Commit Version') {
steps { steps {
bat """ sshagent(credentials: ['jenkins-ssh-key']) {
chcp 65001 >nul bat """
git config user.email "jenkins@xuqm.com" chcp 65001 >nul
git config user.name "Jenkins CI" git config user.email "jenkins@xuqm.com"
git add ${env.VERSION_FILE} git config user.name "Jenkins CI"
git diff --cached --quiet || git commit -m "ci: bump ${env.IMAGE_NAME} to ${env.SERVICE_VERSION} [skip ci]" git add ${env.VERSION_FILE}
git push origin HEAD:main git diff --cached --quiet || git commit -m "ci: bump ${env.IMAGE_NAME} to ${env.SERVICE_VERSION} [skip ci]"
""" git push origin HEAD:main
"""
}
} }
} }
} }

查看文件

@ -110,14 +110,16 @@ print('versions.json updated: ${env.DEPLOY_SERVICE} = ${env.IMAGE_VERSION}')
stage('Commit Version') { stage('Commit Version') {
steps { steps {
script { sshagent(credentials: ['jenkins-ssh-key']) {
bat """ script {
git config user.email "jenkins@xuqm.com" bat """
git config user.name "Jenkins CI" git config user.email "jenkins@xuqm.com"
git add ${env.VERSION_FILE} git config user.name "Jenkins CI"
git diff --cached --quiet || git commit -m "ci: bump ${env.IMAGE_NAME} to ${env.IMAGE_VERSION} [skip ci]" git add ${env.VERSION_FILE}
git push origin HEAD:main git diff --cached --quiet || git commit -m "ci: bump ${env.IMAGE_NAME} to ${env.IMAGE_VERSION} [skip ci]"
""" git push origin HEAD:main
"""
}
} }
} }
} }

查看文件

@ -39,8 +39,8 @@ pipeline {
branches: [[name: 'main']], branches: [[name: 'main']],
extensions: [[$class: 'CleanBeforeCheckout']], extensions: [[$class: 'CleanBeforeCheckout']],
userRemoteConfigs: [[ userRemoteConfigs: [[
url: 'https://xuqinmin.com/xuqmGroup/XuqmGroup-Web.git', url: 'ssh://git@xuqinmin.com:2222/xuqmGroup/XuqmGroup-Web.git',
credentialsId: 'XUQM_GIT_CREDENTIALS' credentialsId: 'jenkins-ssh-key'
]] ]]
]) ])
} }
@ -142,14 +142,16 @@ print('versions.json updated: ${env.DEPLOY_SERVICE} = ${env.IMAGE_VERSION}')
stage('Commit Version') { stage('Commit Version') {
when { expression { params.DEPLOY_ENV == 'production' } } when { expression { params.DEPLOY_ENV == 'production' } }
steps { steps {
script { sshagent(credentials: ['jenkins-ssh-key']) {
bat """ script {
git config user.email "jenkins@xuqm.com" bat """
git config user.name "Jenkins CI" git config user.email "jenkins@xuqm.com"
git add ${env.VERSION_FILE} git config user.name "Jenkins CI"
git diff --cached --quiet || git commit -m "ci: bump ${env.IMAGE_NAME} to ${env.IMAGE_VERSION} [skip ci]" git add ${env.VERSION_FILE}
git push origin HEAD:main git diff --cached --quiet || git commit -m "ci: bump ${env.IMAGE_NAME} to ${env.IMAGE_VERSION} [skip ci]"
""" git push origin HEAD:main
"""
}
} }
} }
} }

查看文件

@ -33,3 +33,11 @@ nginx -t -p "$PWD/" -c scripts/nginx-test.conf
HTML 引用、版本目录、Nginx 缓存头及 Docker 上一版本保留门禁。 HTML 引用、版本目录、Nginx 缓存头及 Docker 上一版本保留门禁。
Jenkins 和线上部署需由发布流程另行执行;本地构建不能代替生产响应头验收。 Jenkins 和线上部署需由发布流程另行执行;本地构建不能代替生产响应头验收。
# 2026-07-27 Jenkins SCM 凭据收口
- tenant-web 显式 checkout 已改用 Gitea SSH URL 和 Jenkins
`jenkins-ssh-key`,不再引用未配置的 `XUQM_GIT_CREDENTIALS`;其它 Web 作业继续
复用各自 Jenkins SCM 配置。三套 Web 流水线的版本文件回写均使用
`sshagent(jenkins-ssh-key)`,避免 checkout 结束后 push 缺少凭据。
- 该修改尚未通过下一次 Web Jenkins 构建验证;缓存策略提交部署前必须先确认
checkout 与三套前端构建均成功。