zoukankan      html  css  js  c++  java
  • Android 项目配置 gitlab-ci 持续集成

    一、项目根目录下创建一个 .gitlab-ci.yml 文件

    然后在 .gitlab-ci.yml 中配置持续集成的脚本:

    脚本配置详细可以看:

    Configuration of your jobs with .gitlab-ci.yml

    Setting up GitLab CI for Android projects

    二、为项目配置 gitlab-runner

    我用的 windows 电脑,可以看这篇配置   : Windows 下 docker 部署 gitlab ci

    三、说明

    红框中有两个对勾,说明有两个 job,顺序与 文件中定义的顺序一致。

    文件内容:

    image: openjdk:8-jdk
    
    variables:
      ANDROID_COMPILE_SDK: "28"
      ANDROID_BUILD_TOOLS: "28.0.2"
      ANDROID_SDK_TOOLS:   "4333796"
    
    before_script:
      - apt-get --quiet update --yes
      - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
      - wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_TOOLS}.zip
      - unzip -d android-sdk-linux android-sdk.zip
      - echo y | android-sdk-linux/tools/bin/sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}" >/dev/null
      - echo y | android-sdk-linux/tools/bin/sdkmanager "platform-tools" >/dev/null
      - echo y | android-sdk-linux/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}" >/dev/null
      - export ANDROID_HOME=$PWD/android-sdk-linux
      - export PATH=$PATH:$PWD/android-sdk-linux/platform-tools/
      - chmod +x ./gradlew
      # temporarily disable checking for EPIPE error and use yes to accept all licenses
      - set +o pipefail
      - yes | android-sdk-linux/tools/bin/sdkmanager --licenses
      - set -o pipefail
    
    stages:
      - build
      - test
    
    lintDebug:
      stage: build
      script:
        - ./gradlew -Pci --console=plain :app:lintDebug -PbuildDir=lint
    
    assembleDebug:
      stage: build
      script:
        - ./gradlew assembleDebug
      artifacts:
        paths:
        - app/build/outputs/
    
    debugTests:
      stage: test
      script:
        - ./gradlew -Pci --console=plain :app:testDebug

    如果集成中出现错误:

    可以点击进去查看错误原因,解决之后重新加载一遍:

    推荐一个 Docker Android 镜像:

    docker-android-sdkhttps://hub.docker.com/r/runmymind/docker-android-sdk

    Update : 2019/1/15

    对 CI  .gitlab-ci.yml  文件内容修改,更换镜像,避免每次都下载 Android SDK :

    image: runmymind/docker-android-sdk
    
    before_script:
      - chmod +x ./gradlew
    
    stages:
      - build
    
    assembleDebug:
      stage: build
      script:
        - ./gradlew clean
        - ./gradlew assembleDebug
      artifacts:
        paths:
        - app/build/outputs/
      only:
        - master
    
    assembleRelease:
      stage: build
      script:
        - ./gradlew clean
        - ./gradlew assembleRelease
      artifacts:
        paths:
        - app/build/outputs/
      only:
        - master

        脚本自动化打包测试结果:

  • 相关阅读:
    eclipse打包
    java reflect 小例子
    linux查看java jdk安装路径和设置环境变量
    mapreduce (一) 物理图解+逻辑图解
    java url 解码 编码 奇怪的解码两次
    cygwin+hadoop+eclipse (三) 运行wordcount实例
    nutch 与 solr 的结合
    一个项目可以有多个源代码路径
    SHAppBarMessage
    记录系统开机启动登录注销等信息
  • 原文地址:https://www.cnblogs.com/aimqqroad-13/p/10115799.html
Copyright © 2011-2022 走看看