Android 如何在使用gitLab ci/cd时自动动态指定应用程序名称

Android 如何在使用gitLab ci/cd时自动动态指定应用程序名称,android,continuous-integration,gitlab,Android,Continuous Integration,Gitlab,在我正在从事的Android项目中,我们使用GitLab CI/CD自动构建并在Diawi中上传.apk文件。在当前设置中,构建应用程序的名称是静态的,因为它需要被知道并作为curl请求发送到Diawi框架。脚本如下所示: - ./gradlew assembleRelease && cp app/build/outputs/apk/release/app-release.apk app-release.apk && curl -v --http1.1 http

在我正在从事的Android项目中,我们使用GitLab CI/CD自动构建并在Diawi中上传.apk文件。在当前设置中,构建应用程序的名称是静态的,因为它需要被知道并作为curl请求发送到Diawi框架。脚本如下所示:

- ./gradlew assembleRelease && cp app/build/outputs/apk/release/app-release.apk app-release.apk && curl -v --http1.1  https://upload.diawi.com/ -F token=$DIAWI_TOKEN -F file=@app-release.apk -F find_by_udid=0 -F callback_emails="mymail@company.com"
但这会在手动测试期间造成一些麻烦,因为同名的.apk文件很容易出错或被覆盖


我的想法是在.apk文件名中添加一些元数据,使其唯一并避免此类错误。您对如何实现这一点有什么想法吗?

您可以做的第一件事是创建版本凹凸功能。您可以通过版本缓冲工具和git sync来实现这一点

对于版本升级,您可以使用我们的开源工具-。现在,假设您通过一个名为apk_version的文件进行同步,首先使用当前版本初始化此文件,如下所示:

docker run --rm relizaio/versioning -s YY.0M.Patch > apk_version
然后在您的CI上下文中,您可以使用

docker run --rm relizaio/versioning -s YY.0M.Patch -v $(cat apk_version) -a bump > apk_version
现在,在GitLab CI中,需要有一个块来解决这个问题。请注意,您还需要在通气结束时提交apk_版本文件

要获得灵感,请参见这个问题以及我们在GitLab上的示例CD项目-

此外,我在这里的文章可能会有所帮助(注意,这一点有点过时):


最后,对于可以添加到版本中的其他内容,GitLab有一个预定义的环境变量列表,可以全部或部分用作修饰符:

您需要的是版本控制信息吗?例如,-F file=@app-release_20.12.1.apk之类的东西有意义吗?这是一个比当前更好的解决方案,但我想知道是否可以添加一些预定义的文本,比如“fix_bug_45”之类的东西