如何使用 Azure Pipelines 自动增加 Android 应用程序的构建 ID 和版本号

Nag*_*ram 6 continuous-integration android continuous-delivery azure-devops azure-pipelines

这是我的 build.gradle

defaultConfig {
        applicationId "com.xyz.abc.na"
        minSdkVersion 16
        targetSdkVersion 29
        versionCode 36
        versionName "5.0.2"
        multiDexEnabled true
    }
Run Code Online (Sandbox Code Playgroud)

在我的 YML 中,我有

 - task: android-manifest-version@1
  displayName: 'Version Update'
  inputs:
  sourcePath: '$(manifestDirectory)'
  versionCodeOption: 'buildid'
  versionCode: '$(Build.BuildId)'
  versionCodeOffset: '1'
  printFile: true

  - task: Gradle@2
    displayName: 'Building Gradle'
    inputs:
      workingDirectory: ''
      gradleWrapperFile: 'gradlew'
      gradleOptions: '-Xmx3072m'
      publishJUnitResults: false
      testResultsFiles: '**/TEST-*.xml'
      tasks: $(gradleTask)
      codeCoverageToolOption: 'None'
      javaHomeOption: 'JDKVersion'
      jdkVersionOption: 'default'
      jdkArchitectureOption: 'x64'
      checkStyleRunAnalysis: false
      findBugsRunAnalysis: false
Run Code Online (Sandbox Code Playgroud)

除非我手动更改build.gradle 中的versionCode和 ,versionName否则这些值永远不会自动更新。

如何获取最新值,加 1 并更新 build.gradle,然后根据新版本代码和版本名称生成构建?

以下是对我不起作用的现有参考。

参考1

参考2

参考3

Yah*_*hia 8

要在本地执行此操作,您可以按照以下步骤操作:

  1. gradle.properties添加这 2 个属性
appVersionCode=1
appVersionName="1.0"
Run Code Online (Sandbox Code Playgroud)
  1. build.gradle应用程序

代替

versionCode 36
versionName "5.0.2"
Run Code Online (Sandbox Code Playgroud)

versionCode appVersionCode.toInteger()
versionName appVersionName.toString()
Run Code Online (Sandbox Code Playgroud)
  1. 在 YAML 文件中添加 Gradleoptions并传递$(MyAppBuildNumber)$(MyAppVersionNumber)via 变量
- task: Gradle@2
      inputs:
        ...
        options: '-PappVersionCode=$(MyAppBuildNumber) -PappVersionName=$(MyAppVersionNumber)'
        ...
Run Code Online (Sandbox Code Playgroud)


Cec*_*SFT 1

您可以检查扩展Mobile Versioning,它提供了更新 Android 版本 Gradle 的任务:

- task: UpdateAndroidVersionGradle@1
  inputs:
    buildGradlePath: 'your_project/app/build.gradle'
    versionName: '$(MAJOR).$(MINOR).$(PATCH)' # Optional. Default is: $(MAJOR).$(MINOR).$(PATCH)
    versionCode: '$(NUMBER_OF_COMMITS)' # Optional. Default is: $(NUMBER_OF_COMMITS)
Run Code Online (Sandbox Code Playgroud)

详细文档你可以查看以下链接:

https://damienaicheh.github.io/azure/devops/2019/12/19/manage-your-application-version-automatically-using-git-and-azure-devops-en