推荐使用:GitHub Release 文件上传工具
在软件开发中,发布新版本时将构建的二进制文件、文档等资源以附件形式上传到GitHub Release是一个常见的需求。为了简化这个流程,我们向您推荐一个高效实用的开源项目——svenstaro/upload-release-action。它是一个GitHub Action,能够帮助您自动化地将指定的文件上传至GitHub的新或已存在的Release中。
项目介绍
svenstaro/upload-release-action
是一个轻量级的GitHub Action,支持所有GitHub提供的操作系统环境。通过简单的配置,您可以轻松实现基于git标签创建或更新Release,并自动上传文件作为Release的资产。无论您是发布Linux、Windows还是macOS的软件包,甚至是文档和日志,这款工具都能帮您搞定。
项目技术分析
该项目基于JavaScript编写,利用GitHub提供的webhook和API接口来操作Release。核心功能包括:
- 支持通过标签(
tag
)识别要上传的Release。 - 提供多个可选输入变量,如设置文件名(
asset_name
)、覆盖现有文件(overwrite
)、标记预发布(prerelease
)等。 - 可以处理文件路径或者glob模式的文件列表,方便批量上传。
- 具有检查权限并适配不同权限级别的功能。
项目及技术应用场景
该Action适用于以下场景:
- 自动化构建系统:当您创建一个新的git标签时,可以触发一个工作流,自动构建可执行文件并将其上传到对应的Release。
- 文档发布:更新文档后,可以与新的git标签同步,确保每次发布都有最新的文档可供查阅。
- 软件分发:无论是跨平台的应用程序还是库,都可以将不同平台的构建产物上传到GitHub Release,方便用户下载。
项目特点
- 简单易用:只需提供几个关键参数,就可以完成文件上传。
- 灵活性强:支持动态设定文件名、覆盖策略以及选择是否将Release设为最新或预发布。
- 多平台支持:兼容所有GitHub支持的操作系统。
- 安全可靠:使用GitHub提供的token,只对指定仓库有操作权限。
- 自定义性强:可以根据需要设置Release说明,甚至可以从仓库内的文件读取内容。
下面是一个简单的示例配置,演示如何在创建git标签时上传一个文件到新的Release:
name: Publish
on:
push:
tags:
- '*'
jobs:
build:
name: Publish binaries
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build
run: cargo build --release
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: target/release/mything
asset_name: mything
tag: ${{ github.ref }}
overwrite: true
body: "This is my release text"
现在,您可以尝试将svenstaro/upload-release-action
集成到自己的GitHub项目中,享受自动化带来的便利吧!