Skip to content

Commit

Permalink
Update upload.md
Browse files Browse the repository at this point in the history
  • Loading branch information
aibangjuxin authored Jun 12, 2024
1 parent de9b87b commit 6b86e6c
Showing 1 changed file with 67 additions and 0 deletions.
67 changes: 67 additions & 0 deletions upload.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
要自动化上传Zip文件到GitHub Release assets,你可以编写一个shell脚本来完成这个过程。以下是一个基本的脚本示例,它使用`wget`来下载Zip文件,然后使用GitHub API来上传这个文件到指定的Release的assets中。

首先,你需要准备以下信息:
- GitHub个人访问令牌(Personal Access Token,简称PAT)
- 仓库的名称和所有者
- 要上传的Release的tag名
- 你想要上传的Zip文件的URL

然后,你可以创建一个shell脚本,如下所示:

```bash
#!/bin/bash

# 设置变量
GITHUB_TOKEN='你的GitHub个人访问令牌'
REPO_OWNER='仓库的所有者'
REPOSITORY='仓库的名称'
TAG_NAME='要上传的Release的tag名'
ZIP_URL='Zip文件的URL'
ZIP_FILENAME='下载的Zip文件名,例如:my-app-1.0.0.zip'

# 使用wget下载Zip文件
wget $ZIP_URL -O $ZIP_FILENAME

# 检查wget命令是否成功执行
if [ $? -ne 0 ]; then
echo "下载Zip文件失败"
exit 1
fi

# 获取Release的ID
RELEASE_ID=$(curl -H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/repos/$REPO_OWNER/$REPOSITORY/releases/tags/$TAG_NAME" | \
grep -Po '"id": \K\d+')

# 上传文件到Release assets
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
-H "Content-Type: application/zip" \
--data-binary "@$ZIP_FILENAME" \
"https://uploads.github.com/repos/$REPO_OWNER/$REPOSITORY/releases/$RELEASE_ID/assets?name=$ZIP_FILENAME"

# 检查curl命令是否成功执行
if [ $? -eq 0 ]; then
echo "上传成功"
else
echo "上传失败"
fi

# 清理下载的文件
rm $ZIP_FILENAME
```

请将上述脚本中的占位符(例如`你的GitHub个人访问令牌`)替换为实际的值。确保你的GitHub个人访问令牌具有足够的权限来创建Release和上传assets。

将这个脚本保存为`.sh`文件,并在具有执行权限的情况下运行它。你可以使用以下命令来给予脚本执行权限:

```bash
chmod +x your-script-name.sh
```

然后运行脚本:

```bash
./your-script-name.sh
```

请注意,这个脚本使用了GitHub API的Upload a Release Asset端点,并且假定你已经有了一个存在的Release。如果Release不存在,你需要先创建一个Release,然后才能上传assets。此外,确保你的`wget``curl`命令在你的系统上可用。

0 comments on commit 6b86e6c

Please sign in to comment.