可通过三种路径实现QoderWake沙盒与Jenkins调度协同:一、Webhook事件桥接,Jenkins触发QoderWake API并接收回调;二、QoderWake Connector SDK反向接管Jenkins Agent,沙盒执行全部构建步骤;三、基于共享Jenkinsfile与QoderWake Runtime Profile声明式协同,统一环境策略。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望将QoderWake的沙盒执行能力与Jenkins的成熟调度能力协同使用,以构建更安全、可审计、高隔离性的CI/CD流水线,则需规避单点依赖、避免环境污染,并确保任务上下文在跨平台间准确传递。以下是实现该联动的多种可行路径:
一、通过Webhook事件桥接QoderWake沙盒与Jenkins主节点
该方式利用Jenkins作为中央触发器,由其接收外部事件(如Git推送)后,主动调用QoderWake API启动受限沙盒任务,实现职责分离:Jenkins管流程编排,QoderWake管安全执行。
1、在Jenkins中安装Generic Webhook Trigger Plugin插件,并为对应Pipeline项目配置Webhook URL(例如:/generic-webhook-trigger/invoke)及Secret Token。
2、在Git仓库(GitHub/GitLab)的Webhook设置中,将Payload URL指向Jenkins地址,Content type设为application/json,勾选push、pull_request事件。
3、在Jenkinsfile的build阶段末尾添加curl命令,向QoderWake沙盒API提交执行请求:curl -X POST https://api.qoder.com/v1/sandbox/execute -H "Authorization: Bearer ${QODER_TOKEN}" -d '{"task_id":"t-12345","env":"prod-sandbox","timeout":600}'。
4、QoderWake执行完毕后,通过回调URL(需在请求中指定callback_url字段)将exit_code、stdout、artifact_url等结果回传至Jenkins,由Jenkins解析并决定后续stage走向。
二、使用QoderWake Connector SDK反向接管Jenkins Agent节点
该方式将Jenkins Agent“降级”为轻量级通信代理,所有实际构建步骤均在QoderWake沙盒内完成,Jenkins仅保留任务分发与状态聚合职能,彻底消除本地环境差异与残留风险。
1、在QoderWake控制台「Connector管理」中创建Jenkins类型实例,获取connector_id与webhook_secret。
代码编辑 CLI 工具集合:Cursor CLI(agent)和 Qoder CLI(qodercli),用于代码修改、重构、Code Review 及自动化代码任务。
2、在Jenkins系统配置中新增「QoderWake Agent」,填入connector_id,并启用自动注册模式;该Agent上线后不运行任何Shell命令,仅监听来自QoderWake的指令流。
3、在Jenkins Pipeline中声明agent标签为qoder-sandbox,而非传统label 'linux'或docker image:agent { label 'qoder-sandbox' }。
4、当Pipeline运行至该stage时,Jenkins向QoderWake发起绑定请求,QoderWake随即分配沙盒容器、挂载代码副本、执行Jenkinsfile中定义的steps,并将日志实时流式回传至Jenkins控制台。
三、基于共享Jenkinsfile与QoderWake Runtime Profile的声明式协同
该方式要求将环境约束从Jenkins Agent配置中剥离,转而通过QoderWake的Runtime Profile进行统一定义,使同一份Jenkinsfile可在不同安全等级的沙盒中复用,提升策略一致性与合规审计效率。
1、在QoderWake控制台创建Runtime Profile,例如名为java17-mvn38-sonar,其中明确指定基础镜像、预装工具链版本、允许的网络出口域名及磁盘配额。
2、在Jenkinsfile中通过environment块注入QODER_RUNTIME_PROFILE变量:environment { QODER_RUNTIME_PROFILE = 'java17-mvn38-sonar' }。
3、在pipeline的options块中启用QoderWake适配器插件(需提前安装),并配置profile映射规则:qoderWakeProfile(profileName: env.QODER_RUNTIME_PROFILE)。
4、Jenkins在解析Jenkinsfile时识别该指令,跳过本地agent匹配逻辑,直接向QoderWake发起带profile参数的沙盒创建请求,后续所有sh、script等步骤均在该profile约束的环境中执行。

















