【问题标题】:GitLab.com CI shared runner for Android projects适用于 Android 项目的 GitLab.com CI 共享运行器
【发布时间】:2016-06-25 06:46:36
【问题描述】:

我想在我的 Android 应用程序 gradle 项目中使用 GitLab CI 系统。项目存储库托管在 GitLab.com,所以我想使用 Gitlab Inc. 提供的共享运行器之一。
虽然官方教程provides 是 NodeJS 项目运行器配置的示例,并且也有 Ruby 项目的共享运行器,但我找不到任何示例,甚至找不到支持 Android 应用程序的运行器。

  • 是否有一个共享运行程序由 GitLab.com 提供,它支持开箱即用的 Android 项目(通过指定 image: android:4.2.2 或类似的东西)?
  • 有没有办法配置GitLab.com 提供的现有共享运行器 以支持Android 项目(通过修改.gitlab-ci.yml 文件)?李>

【问题讨论】:

  • 如果您的问题解决了,您可以选择答案,也可以在以后遇到同样的问题时互相帮助。

标签: android android-gradle-plugin gitlab gitlab-ci gitlab-ci-runner


【解决方案1】:

我正在使用这个 docker 镜像在 gitlab-ci 上运行 android build

更新:

移至 Gitlab 注册表

image: registry.gitlab.com/showcheap/android-ci:latest

before_script:
    - export GRADLE_USER_HOME=`pwd`/.gradle
    - chmod +x ./gradlew

cache:
  paths:
     - .gradle/wrapper
     - .gradle/caches

build:
  stage: build
  script:
     - ./gradlew assemble

test:
  stage: test
  script:
     - ./gradlew check

完整指南可以在这个 Gitlab 存储库中查看: https://gitlab.com/showcheap/android-ci

如果您的目标 SDK 和构建工具版本未列出,请提出拉取请求或 fork 我的 repo,然后制作您的自定义目标和构建版本。

【讨论】:

  • 感谢@Chip,您节省了我的研究时间。我们可以同时使用 Docker 镜像和 Gitlab 运行器吗?
  • @david 是的,我已经在我的项目中对其进行了测试。如果您遇到错误,请告诉我。
  • @Sucipto 我明白了,好的,那么哪个最好?前者还是后者?
  • @david 如果你使用 target sdk = 24,你应该使用最新的图像或使用image: showcheap/gitlab-ci-android:24指定图像标签
  • @hardysim 嗨,我刚搬到 gitlab 注册表。但是当我们触发 android build 时,gitlab 仍然一次又一次地下载图像,因为 gitlab ci runner 和 registry 在不同的机器上。但我还是转向了 gitlab,因为 gitlab 上的自动构建映像比 docker hub 快。
【解决方案2】:

这是我在我的 android 项目中使用的 .gitlab-ci.yml 文件。由于我将其更改为一次安装一个组件,因此它非常稳定。有时无法接受许可证并且构建失败。但这是极少数情况。 重要的是您的构建工具与此脚本 (build-tools-23.0.3) 中的相同,也许您必须在此处更改脚本。

您可以省略 artifacts 声明,我使用它来获取 lint 报告。

before_script:
  - apt-get --quiet update --yes
  - apt-get --quiet install --yes wget tar unzip openjdk-7-jdk lib32stdc++6 lib32z1
  - wget --quiet --output-document=android-sdk.tgz https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
  - tar --extract --gzip --file=android-sdk.tgz
  - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter android-23
  - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter platform-tools
  - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter build-tools-23.0.3
  - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter extra-android-m2repository
  - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter extra-google-google_play_services
  - echo y | android-sdk-linux/tools/android --silent update sdk --no-ui --all --filter extra-google-m2repository
  - wget --quiet --output-document=gradle.zip https://services.gradle.org/distributions/gradle-2.12-bin.zip
  - unzip -q gradle.zip
  - export ANDROID_HOME=$PWD/android-sdk-linux

build:
  script:
    - gradle-2.12/bin/gradle assembleDebug check --stacktrace
  artifacts:
    paths:
    - library/build/outputs/lint-results.html
    - app/build/outputs/lint-results.html

【讨论】:

    【解决方案3】:

    更新

    根据post,您需要设置自己的跑步者。

    您将在同一篇文章中找到有关构建 Android 应用程序的更多信息。

    【讨论】:

    • 首先感谢您的回答。但是,恐怕它不适合我的情况。您在这里谈论的是设置我自己的跑步者,我想使用 Gitlab.com 提供的共享跑步者之一。
    猜你喜欢
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    相关资源
    最近更新 更多