Bri*_*ham 4 github github-api github-actions
现在,一些标准 GitHub 操作已存档并且不再受支持,我需要创建一个新版本并使用GitHub 脚本操作上传工件。
注意:我无法使用 GitHub 不支持的操作。
我已经完成了发布并正在工作,但是现在当尝试上传发布工件时,我找不到上传发布内容(这是一个 tarball)的方法。
用于上传发布资产的 API 端点的文档建议数据应该是调用输入的一部分,而不是引用文件。
如何将文件的内容获取到下面的数据参数中:
- name: Upload Assets
uses: "actions/github-script@v6"
with:
script: |
try {
return await github.rest.repos.uploadReleaseAsset({
owner: context.repo.owner,
repo: context.repo.repo,
name: "release.tar.xz",
release_id: ${{ fromJSON(steps.deploy.outputs.result).data.id }}
data:
})
} catch (error) {
core.setFailed(error.message);
}
Run Code Online (Sandbox Code Playgroud)
创建版本和其他 GitHub 操作的一个好方法是GitHub CLI ( gh)。
GitHub 工作流程已经有一个 GitHub 令牌${{ github.TOKEN }},您可以将其传递给 env,CLI 将自动获取它。
permissions:
contents: write
jobs:
release:
steps:
- run: |
gh release create v1.2.3 release.tar.xz
env:
GITHUB_TOKEN: ${{ github.TOKEN }}
shell: bash
name: Creates a release in GitHub and uploads attachments
Run Code Online (Sandbox Code Playgroud)
注意:由于某种原因,
gh将执行一个调用来查看文件是否已上传,另一个调用来上传文件。因此,我使用这种方法突破了 API 速率限制,尝试将 500 个文件附加到一个版本。通常,您每小时应该能够跨工作流执行 1000 次 API 调用。