当Jenkins构建成功时,将Jar推送到github

时间:2012-03-12 20:38:18

标签: jar github hudson jenkins publish

我有一个简单的Jenkins构建,它从github下载我的项目,构建它并报告构建的状态。

我想配置Jenkins将生成的JAR文件发布到项目中的TARGET-SNAPSHOTS分支。

目前我的项目.gitignore的/ target / *

我正在查看GitPublisher,但这似乎推动了整个构建,而不仅仅是jar文件。

关于最佳方法的想法/如果可能的话?

由于

2 个答案:

答案 0 :(得分:2)

我认为你有很多可能性。其中之一是运行构建后脚本。它可以写成shell。

请参阅Post build task

简单的脚本:

find . -name "*.jar" -exec scp {} user@myhost.com:/path/for/build/${BUILD_TAG} \;

其他:

Publish Over ... (ssh, ftp, cifs)

答案 1 :(得分:1)

由于您正在使用maven并且您说github下载部分是可接受的,您可以使用github下载插件 - https://github.com/github/maven-plugins。我使用它来将Riak java客户端部署到我们的下载部分作为构建的一部分。

在您的〜/ .m2 / settings.xml中,您需要:

<settings>
  <profiles>
    <profile>
      <id>github</id>
      <properties>
        <github.global.userName>YourGithubUser</github.global.userName>
        <github.global.password>YourGithubPass</github.global.password>
      </properties>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>github</activeProfile>
  </activeProfiles>
</settings>

然后在你的项目中.pom之类的东西:

<profile>
  <id>githubUpload</id>
  <activation>
    <property>
      <name>github.downloads</name>
      <value>true</value>
    </property>
  </activation>
  <build>
    <plugins>
      <plugin>
        <groupId>com.github.github</groupId>
        <artifactId>downloads-maven-plugin</artifactId>
        <version>0.4</version>
        <configuration>
          <description>${project.version} release of ${project.name}</description>
          <override>false</override>               
          <includeAttached>true</includeAttached>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>upload</goal>
            </goals>
            <phase>install</phase>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</profile>

(我是在安装阶段的一部分 - 你可以这样做)

然后只需将-Dgithub.downloads=true添加到您的maven构建 -

mvn install -Dgithub.downloads=true

插件的网页列出了包含/排除文件的所有选项等。