Android实现自动化打包:git+GitLab+蒲公英+钉钉机器人

兜兜转转再次回到开发岗,新入职的公司用的自动打包,觉得挺神奇的,想自己试试怎么弄的。顺便记录一下

1. 配置gitlab

1.1 新建测试项目

第一步可以直接在gitlab上新建一个android测试项目,项目根目录会有.gitlab-ci.yml文件,这个就是CI持续集成的。一会儿我们再来配置,测试项目结构如下:
在这里插入图片描述

1.2 gitlab-runner

这一步需要下载runner,启动runner,最后注册runner,有不懂的可以看命令行,很简单的
runner页面
在这里插入图片描述
runner启动后可以在gitlab的settings的CI/CD中看到这个runner,绿灯就代表ok了
在这里插入图片描述

至此我们push代码的时候其实已经能够看到CI在工作了
在这里插入图片描述

1.3 配置.gitlab-ci.yml文件(windows未完成,mac可运行,区别mac是单引号,windows需要双引号,转义转不明白,放弃了)

这一步卡了不少时间,主要是对yml不熟悉,想找个直接能用的,需要配置自己的环境
最简单的配置文件:

image: openjdk:8-jdk

variables:
  ANDROID_COMPILE_SDK: "28"
  ANDROID_BUILD_TOOLS: "28.0.3"
  ANDROID_SDK_TOOLS:   "24.4.1"

before_script:

stages:
  - build

assembleDebug:
  stage: build
  only:
    - master
  script:
    - ./gradlew assembleDebug -g C:\Users\杨浩东\.gradle(改成你的gradle地址)
    - curl.exe -F "_api_key=1a2fbf9aba4cdaafea85841ea25d93a8"(改成你的apikey) -F "file=@app/build/outputs/apk/debug/app-debug.apk"(自定义apk目录) https://www.pgyer.com/apiv2/app/upload
    - curl "https://oapi.dingtalk.com/robot/send?access_token=32e804c89ee5ef3844f5977f0bedacdc37b377352f1f7840a56e3b79cfc9215b"(钉钉机器人设置页面可以找到) -XPOST -H 'content-type:application/json' -d '{"msgtype":"text","text":{"content":"【Andord Auto Test】打包完成,下载地址:https://www.pgyer.com/22V2"},"isAtAll":false}}'
  artifacts:
    paths:
      - app/build/outputs/apk/debug/app-debug.apk
  tags:
    - test(runner register时候的tags 进行匹配)

遇到的问题集锦

1.CI一直处于阻塞状态

你可以查看一下报的什么问题,我一开始的问题是runner register的时候不知道选什么选了docker-windows,应该是我没有装这个的缘故,后来网上查了改成shell是最方便的。
可以看到这一步已经成功了
在这里插入图片描述

2.初始化环境出错

在这里插入图片描述
网上说是有些win10的机器会出错
这里只要将你安装runner目录的config.toml文件中搜索pwsh修改成powershell即可

3.上传蒲公英出现问题

在这里插入图片描述
最后是这条指令在本地可以跑了,但是上传代码依然有问题 这步卡了很久很久
curl -F "_api_key=1a2fbf9aba4cdaafea85841ea25d93a8" -F "file=@app/build/outputs/apk/debug/app-debug.apk" https://www.pgyer.com/apiv2/app/upload
我觉得应该是shell指令改成powershell上面的就出现问题了,一个坑跳进另一个坑啊,这里最后用自己的runner设置成powershell,restart runner就成功了,莫名其妙卡了半天 真的很奇怪。

4.注意 windows环境一定要双引号 并且要进行转义 并且汉字要转成unicode码才能正常显示 太坑了

下面这句在本地是能跑通的。

curl "https://oapi.dingtalk.com/robot/send?access_token=dd95eb024977ecb75c8947c014fb751e529b59b0a8addc9b9269eb5ecadbe0bf" -H "Content-type: application/json" -d
"{\"msgtype\": \"text\",\"text\": {\"content\":\"test\"}}"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值