【问题标题】:How to sync Gradle/Android versionCode between build server and workstation如何在构建服务器和工作站之间同步 Gradle/Android 版本代码
【发布时间】:2014-12-24 08:55:28
【问题描述】:

目前我们让 Bamboo 监听 Git 存储库的任何更改。当发生更改时,构建过程开始并将 (Bamboo) 构建号加一。

我认为为 Android 项目 (versionCode) 使用相同的内部版本号会很好,这样应用程序的用户可以始终参考他/她收到的实际版本。这样,构建服务器上的内部版本号从 1 变为 2。只有工作站不知道这一点,仍然使用版本 1。

有没有办法同步这个版本号?

试过了: 我的一个朋友建议的一个可能的解决方案是使用 git 命令来获取提交号:git rev-list HEAD --count,这太棒了。唯一的缺点是您无法在 Bamboo 中正确更改内部版本号。所以 Bamboo 的内部版本号应该是领先的。

顺便说一句,我正在使用带有 Gradle 的 Android Studio

【问题讨论】:

    标签: android gradle continuous-integration bamboo build-server


    【解决方案1】:

    Bamboo 可以配置为在构建时将清单中的 versionCode 值设置为内部版本号,因此无需将此更改传播回进行开发的地方。要配置 Bamboo 来执行此操作,请在构建计划中添加一个脚本任务(在实际构建任务之前),其正文为:

    sed -i 's/android:versionCode="[[:digit:]]*"/android:versionCode="${bamboo.buildNumber}"/' AndroidManifest.xml
    

    【讨论】:

      【解决方案2】:

      是的,使用 gradle 很容易。您必须在 gradle 脚本中检索最新的构建结果并将其放入 versionCode。

      这就是你所需要的(记得更改变量以引用你的服务器):

      def getBambooNumber(){
          def url = "https://bambooServer:bambooPort/rest/api/latest/result/PROJECT-BAMBOO-ID/latest.json?os_authType=basic".toURL()
          def authValue = "USER:PASSWORD".bytes.encodeBase64().toString()
          def json = new JsonSlurper().parseText(url.getText(requestProperties : ["Authorization" : "Basic " + authValue]))
          return json.buildNumber + 1 // +1 to Get the new build number
      }
      
      
      def bambooBuild = bambooBuildNumber()
      
      android {
          ...
      
          defaultConfig {
              ...
              versionCode bambooBuild
              //This allows you to access in BuildConfig to the bamboo build
              buildConfigField "Integer", "BAMBOO_BUILD", "${bambooBuild}"
              ...
          }
      
          ...
      }
      

      让我知道这是否适合你。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多