You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins流水线中向Samba共享归档/发布制品?求对应DSL扩展

回答:Jenkins Pipeline 发布到 Samba 的解决方案

嘿,其实你不用找别的工具——你提到的Publish Over CIFS插件本身就支持Jenkins Pipeline DSL!我自己在项目里用过好多次,完全能实现你想要的流水线式发布到Samba共享的需求。

基本使用步骤

首先确保你已经在Jenkins上安装了Publish Over CIFS插件,然后可以通过两种方式在Pipeline中配置:

方式1:使用全局配置好的Samba服务器

先在Jenkins的「系统管理」→「系统设置」→「Publish Over CIFS」里配置好你的Samba服务器信息(包括地址、共享名、凭据等),然后在Pipeline中直接引用这个配置:

pipeline {
    agent any
    stages {
        stage('发布制品到Samba') {
            steps {
                publishOverCIFS(
                    failOnError: true, // 发布失败时终止流水线
                    publishers: [
                        cifsPublisher(
                            configName: 'MySambaServer', // 全局配置里的服务器名称
                            transfers: [
                                cifsTransfer(
                                    sourceFiles: '**/target/*.war', // 要上传的制品路径
                                    remoteDirectory: '/prod/deploy/', // Samba共享目录
                                    flatten: false, // 保留本地文件结构
                                    cleanRemote: false // 不清空远程目录
                                )
                            ]
                        )
                    ]
                )
            }
        }
    }
}

方式2:在Pipeline中直接指定服务器参数

如果不想依赖全局配置,也可以在Pipeline里直接定义Samba服务器的所有参数,适合动态场景:

pipeline {
    agent any
    stages {
        stage('动态发布到Samba') {
            steps {
                publishOverCIFS(
                    failOnError: true,
                    publishers: [
                        cifsPublisher(
                            serverName: '192.168.1.100', // Samba服务器IP/域名
                            username: credentials('samba-user'), // 引用Jenkins凭据
                            password: credentials('samba-pass'),
                            share: 'jenkins-artifacts', // Samba共享名
                            transfers: [
                                cifsTransfer(
                                    sourceFiles: 'dist/**/*',
                                    remoteDirectory: '/beta/'
                                )
                            ]
                        )
                    ]
                )
            }
        }
    }
}

几个实用提示

  • 记得用credentials()方法引用Jenkins存储的凭据,不要直接写明文密码,保证安全性
  • 如果遇到上传失败,先检查Samba服务器的共享权限,确认Jenkins运行用户有读写权限
  • cleanRemote参数设为true会清空远程目标目录,使用时一定要谨慎

内容的提问来源于stack exchange,提问作者Markus Weninger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:53:36