https://github.com/wuhenzhizao/android-gitlab-ci-build
Android Gitlab CI自动构建流程,支持打包,上传,发送邮件,单元测试
https://github.com/wuhenzhizao/android-gitlab-ci-build
android build gitlab-ci gitlabci trigger yml
Last synced: 8 months ago
JSON representation
Android Gitlab CI自动构建流程,支持打包,上传,发送邮件,单元测试
- Host: GitHub
- URL: https://github.com/wuhenzhizao/android-gitlab-ci-build
- Owner: wuhenzhizao
- Created: 2017-08-30T10:45:06.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2018-03-22T09:46:46.000Z (about 8 years ago)
- Last Synced: 2025-01-20T02:47:46.973Z (over 1 year ago)
- Topics: android, build, gitlab-ci, gitlabci, trigger, yml
- Language: Java
- Homepage:
- Size: 535 KB
- Stars: 45
- Watchers: 2
- Forks: 20
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Gitlab-CI-Auto-Build
Gitlab CI自动构建流程,支持打包,上传,发送邮件,单元测试
[Demo下载](https://fir.im/pt32)
功能
---
1. 提供对多环境打包的支持;
2. 提供对第三方应用托管平台的上传功能,如[蒲公英](https://www.pgyer.com)等;
3. 支持构建完成发送邮件;
4. 支持单元测试;
配置流程
-------
工程根目录下[.gitlab-ci.yml](.gitlab-ci.yml)
```perl
stages: # 创建四个流程
- buildApk # 编译安装包
- uploadApk # 上传安装包
- notify # 发送邮件通知
- test # 触发单元测试
mxBuildJob:
stage: buildApk
script:
# 创建apk输出路径
- mkdir -p app/build/outputs;
# triggers触发时,如果参数中包含RELEASE_BUILD,则执行脚本gitlabci/build_release_apk_script.sh
- if [ -n "${RELEASE_BUILD}" ]; then source gitlabci/build_release_apk_script.sh; fi;
# triggers触发时,如果参数中包含DEBUG_BUILD,则执行脚本gitlabci/build_debug_apk_script.sh
- if [ -n "${DEBUG_BUILD}" ]; then source gitlabci/build_debug_apk_script.sh; fi;
artifacts:
paths:
# 设置输出路径
- app/build/outputs/
only:
- triggers
tags:
- android
mxUploadApkJob:
stage: uploadApk
script:
# mxBuildJob成功后执行
- if [ -n "${RELEASE_BUILD}" ]; then source gitlabci/upload_apk_release_script.sh; fi;
- if [ -n "${DEBUG_BUILD}" ]; then source gitlabci/upload_apk_debug_script.sh; fi;
when: on_success
only:
- triggers
tags:
- android
mxBuildSuccessNotifyJob:
stage: notify
when: on_success
script:
# apk上传成功后执行发送邮件脚本
- source gitlabci/send_email_success_script.sh;
when: on_success
only:
- triggers
tags:
- android
mxUnittestJob:
stage: test
only:
- triggers
script:
# mxBuildSuccessNotifyJob执行完成之后,开始单元测试
- source gitlabci/android_test_script.sh;
tags:
- android
```
触发请求
1. GitLab服务端 Settings --> Triggers,获取trigger信息:token, 选择CURL方式进行trigger触发,ref为对应的分支名称
```perl
curl -X POST \
-F token=TOKEN \
-F ref=REF_NAME \
http://gitlab.intra.gomeplus.com/api/v3/projects/1137/trigger/builds
```

2. app代码中创建post请求
```java
public interface BuildService {
@FormUrlEncoded
@POST("v3/projects/1137/trigger/builds")
Call postBuildRequest(
@Field("token") String token,
@Field("ref") String branch,
@Field("variables[RELEASE_BUILD]") String onlineBuild,
@Field("variables[DEBUG_BUILD]") String devBuild);
}
```