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

    腳本自動化打包測試結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM