.gitlab-ci.yml
文件而後在 .gitlab-ci.yml 中配置持續集成的腳本:
html
腳本配置詳細能夠看:linux
Configuration of your jobs with .gitlab-ci.ymlandroid
Setting up GitLab CI for Android projectsc++
我用的 windows 電腦,能夠看這篇配置 : Windows 下 docker 部署 gitlab cigit
紅框中有兩個對勾,說明有兩個 job,順序與 文件中定義的順序一致。docker
文件內容:windows
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
若是集成中出現錯誤:app
能夠點擊進去查看錯誤緣由,解決以後從新加載一遍:gitlab
推薦一個 Docker Android 鏡像:post
docker-android-sdk( https://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
腳本自動化打包測試結果: