Jenkins没有使用git参数插件检索git引用

时间:2015-03-11 13:52:00

标签: git jenkins jenkins-plugins

您好我正在尝试配置我们的jenkins构建服务器以使用git分支。

我的配置如下:

git plugin

如果我点击带参数的构建,我会得到一个像这样的空列表:

git listing

我已经构建了这个没有参数的项目,并且它有效。在源代码管理部分,我已经在没有ssh的情况下为我们的服务器添加了正确的信用卡。 (只有用户名和密码)

但是我没有列表中的git引用。我已经google了一下,发现这是一个常见的问题,如果你使用ssh但我们不使用ssh。我不想通过Extensible Choice Parameter插件制作解决方法。

那么这里有什么问题?我不敢相信这在詹金斯中很难配置......

我们使用最新的jenkins版本和git参数插件与maven id: org.jenkins-ci.tools:git-parameter:0.4.0

5 个答案:

答案 0 :(得分:1)

这是我的bitbucket解决方案:(也应该对gitlab / github的URL进行少量修改)

您可以使用Bitbucket Rest API和Scriptler来完成: (例如,这里有“tags”端点。它也适用于其他端点,例如“branches”)

  1. 转到管理Jenkins - > Scriptler - >添加新脚本

    你必须设置你的值 组织, 库中, 用户 和密码。 最好的方法是使用scriptler

  2. 中的“定义脚本参数”选项

    ```

        String organization="${ORGANISATION}"
        String repository="${REPOSITORY}"
        String endpoint="tags"
        String baseUrl = "https://api.bitbucket.org"
        String version = "1.0"
        // Create authorization header using Base64 encoding
        //HERE YOU CAN GET THE AUTH CREDENTIALS OVER THE CREDENTIALSID INSTEAD 
        String userpass = "${USER}:${PASSWORD}"
        String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes());
        println basicAuth
        String url = [baseUrl, version, "repositories", organization, repository, endpoint].join("/")
        println "URL " + url
        // Create URL
        URL apiUrl = url.toURL()
        // Open connection
        URLConnection connection = apiUrl.openConnection()
        // Set authorization header
        connection.setRequestProperty("Authorization", basicAuth)
        InputStream inputStream = connection.getInputStream()
        HashMap tags = new groovy.json.JsonSlurper().parseText(inputStream.text)
        inputStream.close()
        Set keys= tags.keySet();
        List<String>  list=new ArrayList<String>()
        keys.each { key ->
            println key
            list.add(key)
        }
        return list
    

    ```

    1. 然后你应该添加“动态选择参数(Scriptler)” 作业的参数,并选择您添加的脚本 之前。注意:您必须安装Dynamic+Parameter+Plug-in

答案 1 :(得分:0)

解决方法。对我来说很好。希望插件很快就会修复。

  1. 创建新项目,即&#34; git_repo&#34;。添加Git存储库。一次建立这个项目。
  2. 在项目中,您需要使用分支/标签,只需添加&#34; file://&#34;第一步的工作区存储库:example(file:/// var / lib / jenkins / jobs / git_repo / workspace)
  3. 在这种情况下,我的项目可以获取构建项目所需的所有数据。

答案 2 :(得分:0)

如果您在Windows上使用Jenkins,Git参数插件0.4可能无法正常显示&#34;检索Git引用&#34;。

我认为原因是插件并没有使用Jenkins&#39;凭证但运行git命令作为系统的登录用户。您可以通过更改JenKins&#39;来修复它。 Windows服务已将用户登录到已登录并在Windows凭据中保存密码的真实用户。

答案 3 :(得分:0)

我遇到了与没有Git标签的“检索Git引用”相同的问题,但它不是权限问题。我要离开这里以防万一其他人偶然发现这个链接(谷歌的第一个问题)并且可能和我有同样的问题。

当我查看Jenkins日志时,我看到Git参数插件中出现Java数字格式错误(java.lang.NumberFormatException)的错误。这是因为我使用构建时间戳来创建我的标签,这最终成为一个非常长的数值。插件必须将其识别为数字,然后尝试将其转换为int(我假设稍后进行排序),但随后因为太长而爆炸。要解决这个问题,我必须删除所有标签,并将我的构建更改为标记,其中包含作业名称和内部版本号(例如,DEV-233)。在我这样做之后,标签列表正确填充。

答案 4 :(得分:0)

我得到了相同的“检索git引用”但没有分支。网上有几个解决方案。

  1. 运行chron job,创建分支列表,将它们保存到文件系统并读取它以显示。
  2. 运行groovy脚本以获取分支列表并显示。
  3. 我的解决方案(对我有用)是从github下载git-parameter插件的源代码,构建插件并移动到jenkins / WEB-INF / plugins。开始显示repo上可用的分支列表。

    步骤进行:

    1. git clone https://github.com/jenkinsci/git-parameter-plugin.git
    2. cd git-parameter-plugin
    3. mvn clean package -DskipTests = true
    4. 将git-parameter.hpi从git-parameter-plugin \ target复制到jenkins / WEB-INF / plugins
    5. 重启jenkins。
    6. 你现在应该可以看到所有分支。