Android 通过 github actions 自动化打包 并发布 fir.im 爬坑记

背景 : 总是需要 给客户演示, 客户端这边总是要打包 发布demo ,
安装包没了, 还得重新发.
版本有迭代, 得重新发.
新得渠道,得重新发.
有没有一个好得方法,能省去这些琐事. 搜了下GitHub Actions 貌似是个不错得解决方案

  • 新建一个WorkFlow

    进入GitHub 工程页, 选择 Actions Tab项 建好 .yml 文件

    可以选择模板 看好后点击 **Set up this workflow **

    也可以自定义 >> set up a workflow yourself

    如下图

    pic1.png

yml文件在 .github/workflows/ 目录下

  • yml文件简介

    基础知识

    1. workflow (工作流程):持续集成一次运行的过程。
    2. job (任务):一个 workflow 由一个或多个 job 构成,含义是一次持续集成的运行,可以完成多个任务。
    3. step(步骤):每个 job 由多个 step 构成,一步步完成。
    4. action (动作):每个 step 可以依次执行一个或多个命令(action)

    Workflow 语法

    1. name 字段是 work­flow 的名称。若忽略此字段,则默认会设置为 work­flow 文件名。

    2. on 字段 是 workflow 的触发条件 , 譬如是某个分支的提交之类的动作..

    3. jobs 表示要执行的一项或多项任务。一个jobs 包含一个或多个job, 每一项任务必须关联一个 ID (job_id)

    4. runs-on 字段指定任务运行所需要的虚拟服务器环境,是必填字段,我理解就是虚拟机系统,可供选择的系统如下

      虚拟环境 YAML workflow 标签
      Windows Server 2019 windows-latest
      Ubuntu 18.04 ubuntu-latestorubuntu-18.04
      Ubuntu 16.04 ubuntu-16.04
      macOS X Catalina 10.15 macos-latest
  1. action 是 GitHub Ac­tions 中的重要组成部分,这点从名称中就可以看出,actionsaction 的复数形式。它是已经编写好的步骤脚本,存放在 GitHub 仓库中。
  • 编译相关的东西
pic3.png
  • fir 相关

    现在就是要把生成apk文件发布到fir上了.

    网上搜了下,说fir安装需要依赖ruby环境, 得先安装ruby , 这里遇到两个问题

    1. 安装fir工具fir-cli时候提示 no permission相关,按说应该是超级管理员啊, 但加上sudo 也就好了.

    2. publish的时候,总是提示apk不存在, 排查后是安装ruby的时候给删掉了, 后来发现安装时候有个clean参数,设置为false 就不会删除了

    3. firtoken的问题,这个需要到fir官网上获取, 添加至项目的Settings>Secrets>Repository secrets..

      4.png
  • 其它

    中间遇到一些问题,需要打印路径

    这样的方式

        - name: showfiles
           run: |  
            cd /home/runner/work/ProjectPath/~/local/rubies/app/build/outputs/apk/release/
            ls
    
  • 我的脚本
name: Android CI
on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: set up JDK 11
      uses: actions/setup-java@v2
      with:
        java-version: '11'
        distribution: 'adopt'

    - name: Grant execute permission for gradlew
      run: chmod +x gradlew
    - name: Build with Gradle
      run: ./gradlew assembleRelease
 
    - uses: actions/checkout@v1
      id: cache
      with:
        path: ~/local/rubies
        key: ruby-2.6.5
        clean: false
        
    - name: install fir.im
      run: sudo gem install fir-cli
    - name: Upload to Fir.im
      run: fir login ${{ secrets.FIRTOKEN }}
    - run: fir publish  app/build/outputs/apk/release/app-release.apk

  • 参考
  1. GitHub Actions 入门教程

  2. 使用GitHub Actions实现Android自动打包apk

  3. 【持续集成】Android使用Github Action自动打包并发布Fir.im内测

你可能感兴趣的:(Android 通过 github actions 自动化打包 并发布 fir.im 爬坑记)