首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jenkins之外,我可以为工作站cygwin和bash使用什么groovy?

问在Jenkins之外,我可以为工作站cygwin和bash使用什么groovy?
EN

Stack Overflow用户
提问于 2018-10-24 13:32:03
回答 1查看 171关注 0票数 0

我在Jenkins上运行了一个CD管道,其中包含一些使用base64和gpg2的解密代码。

我设置了管道,以便脚本使用Jenkins shell命令从git获取和解密正确的密码,如下所示:

代码语言:javascript
复制
def plainText = sh(script: """#!/bin/sh -e
        echo "$encrypted" | 
        base64 -d -w 0  | 
        gpg2 --batch --decrypt --passphrase $pw """,
    returnStdout: true
    )
println("$key=$plaintext")

这个管道工作得很好,现在我正在为我们的开发工作站编写一个脚本,使用maven-groovy-plugin在本地进行同样的解密,以便devs能够在工作站上运行服务器。

我的第二个要求是我可以在Jenkins上运行我的maven groovy插件来设置集成测试。

因此,我正在寻找一个可以在本地和构建服务器上使用的解决方案。如果有必要,我可以让脚本打开操作系统并执行如下内容:

代码语言:javascript
复制
def cmd = [ 'sh', '-c',
        """echo "$encrypted" | 
           base64 -d -w 0  | 
           gpg2 --batch --decrypt --passphrase $encryptionKey """]
cmd.execute().with {
    def output = new StringWriter()
    def error = new StringWriter()
    //wait for process ended and catch stderr and stdout.
    it.waitForProcessOutput(output, error)
    println "error=$error"
    println "output=$output"
    println "code=${it.exitValue()}"
}

但我不知道如何调整cmd以使用cygwin执行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-31 12:19:11

我通过内置的JMX打开了操作系统,使用了cygwin或linux:

代码语言:javascript
复制
import java.lang.management.*

def os = ManagementFactory.operatingSystemMXBean
println """OPERATING SYSTEM: 
    \tarchitecture = $os.arch
    \tname = $os.name
    \tversion = $os.version
    \tprocessors = $os.availableProcessors"""
def bash = os.name.contains("Win") ? "c:\\cygwin64\\bin\\bash" : "bash"
def cmd = [ bash, '-c',
         """echo "$encrypted" | 
            /usr/bin/base64 -d -w 0  | 
            /usr/bin/gpg2 --batch --decrypt --passphrase $encryptionKey """]
cmd.execute()...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52970348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档