本项目提供了一个 Bash 脚本,用于将指定目录下的所有文件自动上传到 GitHub Release。它通过 GitHub API 自动创建以日期命名的 Release、删除已存在的同名附件,并上传最新的文件内容。
该脚本适用于日常任务自动发布、CI/CD 管道中的文件归档、版本记录和工具打包等场景,特别适合需要将每日构建结果或更新文件推送到 Release 的使用者。
功能介绍
- 自动检测当天的 GitHub Release 是否存在,不存在则创建;
- 自动遍历指定目录下的所有文件,逐个上传到 GitHub Release;
- 如已存在同名附件,自动删除旧附件再上传;
- 上传文件时自动保留原文件名作为 release 附件名。
使用说明
1. 准备工作
- 拥有一个 GitHub 仓库;
- 生成一个 GitHub Token(需要
repo权限); - 安装
jq(用于处理 JSON 数据):
1 | sudo apt install jq |
2. 设置上传目录
将你要上传的文件放入 upload/ 文件夹(也可修改脚本中的路径)。
3. 代码保存
将如下代码保存至 up.sh
1 |
|
4. 修改脚本配置项
编辑 up.sh 中以下内容:
1 | token="你的 GitHub Token" |
5. 运行脚本
1 | bash up.sh |
执行后会自动:
- 检查或创建当天的 Release;
- 删除已存在的同名文件;
- 上传新文件至 Release。
示例输出
1 | 上传文件到 GitHub Release... |
常见用途
- 自动发布构建产物(如编译后的程序包);
- 每日归档日志或数据文件;
- 备份 CI/CD 结果;
- 简化 Release 管理流程。
注意事项
- 默认以
年.月.日形式自动生成 tag; - GitHub Release 的单个附件大小限制为 2GB;
- 脚本不会递归子目录,仅处理指定目录下的一级文件。
授权协议
脚本部分基于 MIT License 开源发布,欢迎自由使用与修改。如需商业部署,请留意 GitHub API 使用条款。
说些什么吧!