@@ -1,69 +0,0 @@
|
|||||||
pipeline {
|
|
||||||
agent none
|
|
||||||
|
|
||||||
options {
|
|
||||||
disableConcurrentBuilds()
|
|
||||||
timestamps()
|
|
||||||
}
|
|
||||||
|
|
||||||
parameters {
|
|
||||||
string(name: 'AGENT_LABEL', defaultValue: 'built-in', description: '构建节点标签')
|
|
||||||
string(name: 'GENARRATIVE_WORKSPACE_ROOT', defaultValue: '', description: '源码根目录,留空则使用当前 Jenkins 工作区')
|
|
||||||
string(name: 'BUILD_VERSION', defaultValue: '', description: '发布版本号,留空则使用 Jenkins BUILD_NUMBER')
|
|
||||||
booleanParam(name: 'RUN_NPM_CI', defaultValue: false, description: '构建前是否执行 npm ci')
|
|
||||||
}
|
|
||||||
|
|
||||||
stages {
|
|
||||||
stage('构建发布包') {
|
|
||||||
agent {
|
|
||||||
label "${params.AGENT_LABEL}"
|
|
||||||
}
|
|
||||||
|
|
||||||
steps {
|
|
||||||
script {
|
|
||||||
// 统一在脚本块里计算版本号,避免 declarative environment 对表达式求值不一致。
|
|
||||||
env.EFFECTIVE_BUILD_VERSION = params.BUILD_VERSION?.trim() ? params.BUILD_VERSION.trim() : env.BUILD_NUMBER
|
|
||||||
// 允许 Jenkins Job 直接指定固定源码目录,未指定时回退到当前工作区。
|
|
||||||
env.WORKSPACE_ROOT = params.GENARRATIVE_WORKSPACE_ROOT?.trim() ? params.GENARRATIVE_WORKSPACE_ROOT.trim() : pwd()
|
|
||||||
}
|
|
||||||
|
|
||||||
dir("${env.WORKSPACE_ROOT}") {
|
|
||||||
checkout scm
|
|
||||||
|
|
||||||
sh '''
|
|
||||||
bash -lc '
|
|
||||||
set -euo pipefail
|
|
||||||
# 构建前清理工作区内的 Git 变更和未跟踪文件,避免复用固定源码目录时受到上次构建残留影响。
|
|
||||||
# 这里不使用 -x,避免删除 node_modules 等忽略目录后与 RUN_NPM_CI=false 的配置冲突。
|
|
||||||
git reset --hard HEAD
|
|
||||||
git clean -fd
|
|
||||||
'
|
|
||||||
'''
|
|
||||||
|
|
||||||
script {
|
|
||||||
// 是否重装依赖交给流水线参数决定,避免每次构建都重复执行 npm ci。
|
|
||||||
if (params.RUN_NPM_CI) {
|
|
||||||
sh 'bash -lc "npm ci"'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sh """
|
|
||||||
bash -lc '
|
|
||||||
set -euo pipefail
|
|
||||||
npm run deploy:rust:remote -- --skip-upload --name "${env.EFFECTIVE_BUILD_VERSION}"
|
|
||||||
test -d "build/${env.EFFECTIVE_BUILD_VERSION}"
|
|
||||||
'
|
|
||||||
"""
|
|
||||||
|
|
||||||
archiveArtifacts artifacts: "build/${env.EFFECTIVE_BUILD_VERSION}/**", fingerprint: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
post {
|
|
||||||
success {
|
|
||||||
echo "构建完成,版本号: ${env.EFFECTIVE_BUILD_VERSION}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -6,6 +6,11 @@ pipeline {
|
|||||||
timestamps()
|
timestamps()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
environment {
|
||||||
|
GENARRATIVE_TOOLS_PATH = "/var/lib/jenkins/.nvm/versions/node/v22.22.2/bin:/var/lib/jenkins/.cargo/bin:/var/lib/jenkins/.local/bin:/var/lib/jenkins/bin"
|
||||||
|
PATH = "${GENARRATIVE_TOOLS_PATH}:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
|
||||||
|
}
|
||||||
|
|
||||||
parameters {
|
parameters {
|
||||||
string(name: 'AGENT_LABEL', defaultValue: 'built-in', description: '执行节点标签')
|
string(name: 'AGENT_LABEL', defaultValue: 'built-in', description: '执行节点标签')
|
||||||
string(name: 'GENARRATIVE_WORKSPACE_ROOT', defaultValue: '', description: '源码根目录,留空则使用当前 Jenkins 工作区')
|
string(name: 'GENARRATIVE_WORKSPACE_ROOT', defaultValue: '', description: '源码根目录,留空则使用当前 Jenkins 工作区')
|
||||||
|
|||||||
@@ -6,6 +6,11 @@ pipeline {
|
|||||||
timestamps()
|
timestamps()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
environment {
|
||||||
|
GENARRATIVE_TOOLS_PATH = "/var/lib/jenkins/.nvm/versions/node/v22.22.2/bin:/var/lib/jenkins/.cargo/bin:/var/lib/jenkins/.local/bin:/var/lib/jenkins/bin"
|
||||||
|
PATH = "${GENARRATIVE_TOOLS_PATH}:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
|
||||||
|
}
|
||||||
|
|
||||||
parameters {
|
parameters {
|
||||||
string(name: 'AGENT_LABEL', defaultValue: 'built-in', description: '执行节点标签')
|
string(name: 'AGENT_LABEL', defaultValue: 'built-in', description: '执行节点标签')
|
||||||
string(name: 'GENARRATIVE_WORKSPACE_ROOT', defaultValue: '', description: '源码根目录,留空则使用当前 Jenkins 工作区')
|
string(name: 'GENARRATIVE_WORKSPACE_ROOT', defaultValue: '', description: '源码根目录,留空则使用当前 Jenkins 工作区')
|
||||||
|
|||||||
@@ -6,6 +6,11 @@ pipeline {
|
|||||||
timestamps()
|
timestamps()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
environment {
|
||||||
|
GENARRATIVE_TOOLS_PATH = "/var/lib/jenkins/.nvm/versions/node/v22.22.2/bin:/var/lib/jenkins/.cargo/bin:/var/lib/jenkins/.local/bin:/var/lib/jenkins/bin"
|
||||||
|
PATH = "${GENARRATIVE_TOOLS_PATH}:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
|
||||||
|
}
|
||||||
|
|
||||||
parameters {
|
parameters {
|
||||||
string(name: 'SOURCE_NODE_NAME', defaultValue: '', description: '上游构建节点名')
|
string(name: 'SOURCE_NODE_NAME', defaultValue: '', description: '上游构建节点名')
|
||||||
string(name: 'SOURCE_WORKSPACE_ROOT', defaultValue: '', description: '上游源码根目录')
|
string(name: 'SOURCE_WORKSPACE_ROOT', defaultValue: '', description: '上游源码根目录')
|
||||||
|
|||||||
Reference in New Issue
Block a user