可爱的 Github 为开发者们提供了一项名为 Github CI 的功能,帮助开发者在线构建各种项目,为构建耗时项目和没有构建设备的开发者提供帮助

当一提到开源,每个人应该都会想到白嫖和全球最大的开源社区 - Github。自动构建作为免费开放的功能可谓非常好用。


# 前言

我找到一个开源的安卓 NDK 项目,但因为没有电脑,作为小白的我起初使用 AIDE 进行构建,安装了 ndk 支持后发现,构建出的东西没有 so 文件?重试很多次后我才知道,这东西不支持 Cmake?Cmake 是个啥?去问度娘后才得到答案。然后我开始考虑用 termux 容器运行 arch Linux 进行构建,安装 sdkman,安装 gradle,ndk 没有 arm 架构的?然后到处查找,在 github 上找到一个,搞过来用,好的,用不了。纯小白便开始迷茫。逛了逛 Github 想起来,不是还有 github ci 吗?以前也没怎么接触过这个,就开始试试吧。

# 教程

条件

  • 一个 github 仓库
  • 对 git 操作流程有一定了解
  • 安装 git (手机请用 termux)

# 配置 Github

仓库的建立和远程控制,网络上已经有了许多教程,在这里就不一一赘述了。
打开 Github 项目仓库页面,点击 Actions
在这个页面寻找你需要构建的项目,展开更多后,可以找到 Android Ci 的选项,选择它。
可以看到如下页面,直接点击下面的 Start commit

打开终端,在你的项目文件夹初始化 git 仓库
使用 ssh 将当前仓库和 github 的仓库建立远程连接

执行

git pull

把远程仓库文件同步过来
然后执行

cd .github/workflows

进入自动构建的配置文件夹
然后对配置文件 android.yml 进行编辑

  • 把 java 版本更改为 8,以提高兼容
  • 确定你需要设置构建的项目文件地址,并且存在 gradlew (用于 gradle 构建)
  • 可以在 run 后面执行命令行,但不要用 cd 之类的指令,实测不能使用
    _mulu
    构建完成后所有生成的文件都会被删除
  • 构建好后的文件可以通过 artifact 打包成 zip,在构建控制页面下载
    以下为实例
name: Android CI
on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]
jobs:
  build:
# 在 linux 上运行构建 (必要的话可以改为 windows)
    runs-on: ubuntu-latest
# 初始化构建工具
    steps:
    - uses: actions/checkout@v2
    - name: set up JDK 8
      uses: actions/setup-java@v2
      with:
        java-version: '8'
        distribution: 'adopt'
        cache: gradle
# 修改权限并进行构建
    - name: Grant execute permission for gradlew
      run: chmod +x gradlew
    - name: Build with Gradle
      run: ./gradlew build
# 查找构建好的文件      
# 这里为寻找.apk 和.aar 后缀文件的路径
    - name: find apk
      run:  find ./ -regex ".*\.apk\|.*\.aar"
           
# 将构建好的含.apk 的文件上传
    - name: Upload APK
      uses: actions/upload-artifact@v2
      with:
          name:  ok
          path: app/build/outputs/apk/debug/*.apk
	  #这里的 path 路径是来自于 find apk 那一步的结果

修改完成后
将本地仓库推送 github,项目的自动构建就会按照配置文件运行
第一次构建成功可能因为路径问题不会上传 apk 文件

这时我们需要去 github ci 的 log 页面,寻找 find apk 那一行查看 apk 所在路径
如果其输出路径为 app/build/outputs/apk/,就打开终端,把配置文件 upload APK 那一步的 path 改为
app/build/outputs/apk/*.apk。
保存文件重新将本地仓库推送到 github
这次就可以得到构建好的 apk 了
githubci

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

PangBai 微信支付

微信支付

PangBai 支付宝

支付宝

PangBai 贝宝

贝宝