40

如何快速为你的Github项目搭建CICD

 4 years ago
source link: https://junbin.tech/2020/02/23/如何快速为你的Github项目搭建CICD/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

作为一个程序员,我们经常会在Github上开源自己的项目,本文将介绍如何通过Travis CI进行持续集成,并通过蒲公英进行项目的部署。介绍如何简单快速的为你的Github项目添加CICD,提高项目的构建、质量及测试的效率。

本文将通过一个Android项目进行示例说明。具体不同的平台的命令配置不一样,但整体的流程一致。

集成

账号

Travis CI

Travis CI 是目前比较流行的持续集成工具之一,用来构建及测试在 Github 托管的代码,使用它可以极大的简化工作流程。

蒲公英

蒲公英 提供专业的手机应用内测服务,您只需将需要内测的应用上传至蒲公英,生成二维码,内测用户通过在手机上扫描二维码,即可将内测应用安装至手机等设备中进行测试

配置

  1. 授权及开启权限

通过Github账号授权Travis进行登录。在Travis的 Settings 中开启repositories的授权开关

  1. 在工程根目录下添加 .travis.yml文件

Travis-CI 本身提供基本的构建和支持语言,同时开发者可以通过.travis.yml文件设置自己的构建操作,同时需要遵从 Travis-CI 自己规定的构建生命周期。具体可参 Travis官网介绍

3.获取蒲公英的token用于发布项目

蒲公英的 API_KEY 可以通过这里查看: https://www.pgyer.com/account/api

4.配置基础的模板

language: android        #语言说明
dist: trusty
jdk: oraclejdk8          #jdk版本
sudo: required           #权限要求
env:                 #环境变量
global:
  - ANDROID_BUILD_TOOLS=29.0.1
  - ADB_INSTALL_TIMEOUT=5 # minutes
android:             #Android 环境要求
components:
  - tools
  - platform-tools
  - build-tools-$ANDROID_BUILD_TOOLS
  - android-29
  - android-21
  - extra-google-m2repository
  - extra-android-m2repository        # 配置design 库
  - extra-android-support
  - extra-google-google_play_services
  - addon-google_apis-google-19       # 配置google play services
  - sys-img-armeabi-v7a-android-29
  - sys-img-armeabi-v7a-android-21
licenses:               #内容许可添加
  - android-sdk-preview-license-.+
  - android-sdk-license-.+
  - google-gdk-license-.+

5.执行对应的代码检查、单元测试、真机测试

before_script:
  ##执行代码规范扫描
  - ./gradlew apm:lint
    ##执行Demo测试脚本
  - ./gradlew apm:test
  #执行测试demo的测试
  ##执行代码规范扫描
  - ./gradlew lint
  ##执行Demo测试脚本
  - ./gradlew test
  - ./gradlew connectedAndroidTest

6.构建发布

script:
  #构建版本
  - ./gradlew assembleRelease
after_script:
  #发布蒲公英
  - set -e
  - $TRAVIS_BUILD_DIR/pgyer_upload.sh "${TRAVIS_BUILD_DIR}/app/build/outputs/apk/release/app-release-unsigned.apk" 1ffafb3680dc6131e41428163082c76a

填坑

1.模拟器启动失败(Error:Target id is not vaild.Use ‘android list targets’ to get the target ids)

规定的模拟器 android 版本需要在 .travis.yml android 部分声明到相关的版本,并且需要添加对应的配置。

before_install:
  - yes | sdkmanager "platforms;android-29"
  - yes | sdkmanager "platforms;android-21"
  - echo yes | android update sdk --all --filter sys-img-armeabi-v7a-android-21 --no-ui --force > /dev/null

2.NDK支持

如果项目中使用cmake,需要添加对应的参数配置。

before_install:
  - echo y | sdkmanager "ndk-bundle"
  - echo y | sdkmanager "ndk;20.1.5948944"
  - echo y | sdkmanager "cmake;3.10.2.4988404"
before_script:
  - export ANDROID_NDK_ROOT=$ANDROID_HOME/ndk-bundle
  - export ANDROID_NDK_HOME=$ANDROID_NDK_ROOT

示例

1.项目

项目地址: https://github.com/junbin1011/SmartAPM

Travis构建: BBbYJri.png!web

发布地址: https://www.pgyer.com/3Dkk

2.配置文件.travis.yaml

请参考 SmartAPM/.travis.yml

关于

欢迎关注我的个人公众号

微信搜索: 一码一浮生 ,或者搜索公众号ID: life2code

AFn6Br7.png!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK