如何在github action里构建并上传APP

本文详细介绍了如何在GitHubActions中配置工作流,构建和上传应用,以及如何在现有release下添加文件,包括获取releaseID、使用API和自定义脚本上传新资产的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人github

在GitHub Actions中构建和上传应用通常包括以下几个步骤:

  1. 配置工作流:

    • 在你的GitHub仓库中创建一个.github/workflows目录。
    • 在该目录中创建一个新的YAML文件,例如build-and-upload.yml
  2. 设置构建环境:

    • 在YAML文件中,定义一个或多个工作,并为每个工作指定一个运行环境。
name: Build and Upload App

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
  1. 检出代码:
    • 使用actions/checkout动作来检出你的仓库代码。
    steps:
    - name: Checkout code
      uses: actions/checkout@v2
  1. 设置构建系统:
    • 根据你的应用程序,设置必要的构建系统和依赖项。
    - name: Set up JDK 1.8
      uses: actions/setup-java@v1
      with:
        java-version: 1.8
  1. 构建应用:
    • 运行构建命令来构建你的应用。
    - name: Build with Gradle
      run: ./gradlew build
  1. 上传构建的应用:
    • 上传构建的应用程序到GitHub Releases或其他平台。
    - name: Create Release
      id: create_release
      uses: actions/create-release@v1
      with:
        tag_name: ${{ github.ref }}
        release_name: Release ${{ github.ref }}
        draft: false
        prerelease: false

    - name: Upload APK
      uses: actions/upload-release-asset@v1
      with:
        upload_url: ${{ steps.create_release.outputs.upload_url }}
        asset_path: app/build/outputs/apk/release/app-release.apk
        asset_name: app-release.apk
        asset_content_type: application/vnd.android.package-archive

之后再次触发action的时候如何在同一个release下增加文件?

在 GitHub Actions 中,如果想要在同一个 release 下增加文件,你可能需要做一些额外的工作。默认情况下,actions/create-release@v1actions/upload-release-asset@v1 是为了创建新的 release 和上传新资产(assets)到新的 release 中。

如果想要在同一个 release 下增加文件,你可能需要:

  1. 获取已有 release 的信息:你需要知道你想要更新的 release 的 ID 或 tag。你可以使用 GitHub API 来获取你的仓库的 release 列表,并找到你想要更新的那一个。

  2. 上传新的资产(assets):一旦你有了 release 的 ID 或 tag,你可以使用 actions/upload-release-asset@v1 或 GitHub API 来上传新的资产到那个 release。

这可能会涉及到编写一些自定义的脚本或使用一些额外的 Actions。这是一个简单的例子,展示了如何在已有的 release 下添加新的资产:

name: Add Asset to Existing Release

on:
  push:
    branches:
      - main

jobs:
  add-asset:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
        
      - name: Set up JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8
        
      - name: Build with Gradle
        run: ./gradlew build
        
      - name: Get Release
        id: get_release
        run: |
          RELEASE_ID=$(curl --silent "https://api.github.com/repos/$GITHUB_REPOSITORY/releases/tags/v1.0" \
            -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
            | jq '.id')
          echo "::set-output name=release_id::$RELEASE_ID"
        
      - name: Upload APK
        uses: actions/upload-release-asset@v1
        with:
          upload_url: https://uploads.github.com/repos/$GITHUB_REPOSITORY/releases/${{ steps.get_release.outputs.release_id }}/assets
          asset_path: app/build/outputs/apk/release/app-release.apk
          asset_name: app-release.apk
          asset_content_type: application/vnd.android.package-archive

在这个例子中:

  • Get Release 步骤使用 curljq 来调用 GitHub API 并获取 release 的 ID。请注意,你需要替换 v1.0 为你的 release tag。

  • Upload APK 步骤使用 actions/upload-release-asset@v1,但是 upload_url 是基于前一步中获得的 release ID 构建的,而不是来自 actions/create-release@v1 的输出。

确保你的仓库和 GitHub token 配置正确,并且你有正确的权限和设置来执行这些操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我想要身体健康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值