【问题标题】:How to dynamically specify app name on automatic when using gitLab ci/cd使用 gitLab ci/cd 时如何自动动态指定应用程序名称
【发布时间】:2021-03-25 10:24:17
【问题描述】:

在我正在处理的 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 文件的名称中添加一些元数据以使其唯一并避免此类错误。您对如何做到这一点有任何想法吗?

【问题讨论】:

  • 您正在寻找的是版本信息吗?即,像 -F file=@app-release_20.12.1.apk 这样的东西有意义吗?
  • 这是一个比当前解决方案更好的解决方案,但我想知道是否可以添加一些预定义的文本,例如“fix_bug_45”或类似的内容

标签: android continuous-integration gitlab


【解决方案1】:

您可以做的第一件事是创建版本碰撞功能。您可以通过版本碰撞工具和 git sync 来完成。

对于版本冲突,您可以使用我们的开源工具 - https://github.com/relizaio/versioning。现在,假设您通过名为 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_version 文件。

要获得灵感 - 请参阅这个问题 How to grant permission for semantic-release to push code to master 以及我们在 GitLab 上的示例 CD 项目 - https://gitlab.com/taleodor/sample-helm-cd/-/blob/master/.gitlab-ci.yml

我在这里的文章也可能会有所帮助(注意这里有点过时了):https://worklifenotes.com/2020/02/27/automatic-version-increments-with-reliza-hub-2-strategies/

最后,对于您可以添加到版本的其他内容,GitLab 有一个预定义的环境变量列表,您可以将其全部或部分用作修饰符:https://docs.gitlab.com/ee/ci/variables/predefined_variables.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 2023-01-13
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2021-08-15
    相关资源
    最近更新 更多