美文网首页
Android 通过 github actions 自动化打包

Android 通过 github actions 自动化打包

作者: heheworld | 来源:发表于2021-05-21 17:18 被阅读0次

    背景 : 总是需要 给客户演示, 客户端这边总是要打包 发布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 自动化打包

          本文链接:https://www.haomeiwen.com/subject/zvgwjltx.html