
提升CI/CD效率gh_mirrors/up/upload-release-action自动化发布完全指南【免费下载链接】upload-release-actionUpload files to a GitHub release项目地址: https://gitcode.com/gh_mirrors/up/upload-release-actiongh_mirrors/up/upload-release-action是一款功能强大的GitHub Action工具能帮助开发者在CI/CD流程中自动将文件上传到GitHub Release支持跨平台运行极大简化了项目发布流程提升开发效率。为什么选择upload-release-action在现代软件开发中高效的发布流程至关重要。手动创建Release并上传资产不仅耗时还容易出错。upload-release-action作为一款专业的自动化发布工具具有以下显著优势完全自动化与GitHub Actions无缝集成实现从代码提交到资产上传的全流程自动化跨平台支持可在GitHub提供的所有操作系统类型上运行高度可配置丰富的参数选项满足不同项目的发布需求简单易用通过简洁的YAML配置即可快速上手核心功能与参数解析必选参数使用upload-release-action时必须提供以下核心参数file要上传的本地文件路径这是实现文件上传到GitHub Release的基础常用可选参数upload-release-action提供了多种可选参数让发布流程更加灵活参数名称默认值描述repo_token${{ github.token }}GitHub令牌用于授权操作tag${{ github.ref }}要上传到的标签自动剥离refs/tags/前缀asset_name文件名资产在Release中的显示名称使用$tag可包含标签名file_globfalse是否启用文件 glob 模式启用后asset_name参数将被忽略overwritefalse如果同名资产已存在是否覆盖draftfalse是否将Release标记为草稿prereleasefalse是否将Release标记为预发布输出变量执行成功后action会提供以下输出变量方便后续流程使用browser_download_url资产的公开下载URLrelease_id创建或更新的Release的数字ID快速上手基础使用教程环境准备首先确保你的项目已托管在GitHub上并准备好需要发布的文件。如果需要克隆仓库使用以下命令git clone https://gitcode.com/gh_mirrors/up/upload-release-action简单示例以下是一个基础的工作流配置当推送标签时自动构建并上传资产name: Publish on: push: tags: - * jobs: build: name: Publish binaries runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - name: Build run: cargo build --release - name: Upload binaries to release uses: svenstaro/upload-release-actionv2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: target/release/mything asset_name: mything tag: ${{ github.ref }} overwrite: true body: This is my release text高级应用场景多平台发布配置对于需要支持多个操作系统的项目可以使用矩阵策略配置多平台构建和发布name: Publish on: push: tags: - * jobs: publish: name: Publish for ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: matrix: include: - os: ubuntu-latest artifact_name: mything asset_name: mything-linux-amd64 - os: windows-latest artifact_name: mything.exe asset_name: mything-windows-amd64 - os: macos-latest artifact_name: mything asset_name: mything-macos-amd64 steps: - uses: actions/checkoutv4 - name: Build run: cargo build --release --locked - name: Upload binaries to release uses: svenstaro/upload-release-actionv2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: target/release/${{ matrix.artifact_name }} asset_name: ${{ matrix.asset_name }} tag: ${{ github.ref }}使用glob模式上传多个文件当需要上传多个文件时可以启用file_glob参数使用glob模式匹配文件name: Publish on: push: tags: - * jobs: build: name: Publish binaries runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - name: Build run: cargo build --release - name: Upload binaries to release uses: svenstaro/upload-release-actionv2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: target/release/my* tag: ${{ github.ref }} overwrite: true file_glob: true发布到外部仓库upload-release-action还支持将资产发布到外部仓库只需指定repo_name参数name: Publish on: push: tags: - * jobs: build: name: Publish binaries runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - name: Build run: cargo build --release - name: Upload binaries to release uses: svenstaro/upload-release-actionv2 with: repo_name: owner/repository-name repo_token: ${{ secrets.YOUR_PERSONAL_ACCESS_TOKEN }} file: target/release/mything asset_name: mything tag: ${{ github.ref }} overwrite: true body: This is my release text常见问题与解决方案权限问题如果遇到resource not accessible by integration错误需要为令牌添加contents: write权限permissions: contents: write动态设置Release说明可以通过读取文件内容动态设置Release说明- name: Read release.md and use it as a body of new release id: read_release shell: bash run: | r$(cat path/to/release.md) r${r//%/%25} r${r//$\n/%0A} r${r//$\r/%0D} echo RELEASE_BODY$r $GITHUB_OUTPUT - name: Upload Binaries to Release uses: svenstaro/upload-release-actionv2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} tag: ${{ github.ref }} body: | ${{ steps.read_release.outputs.RELEASE_BODY }}总结gh_mirrors/up/upload-release-action作为一款高效的自动化发布工具通过与GitHub Actions的深度集成为开发者提供了简单、灵活的Release管理方案。无论是小型项目还是大型跨平台应用都能通过其丰富的功能和简洁的配置显著提升CI/CD流程的效率让开发者专注于代码开发而非发布流程。通过本文介绍的基础配置和高级技巧相信你已经掌握了upload-release-action的核心用法。开始尝试将其集成到你的项目中体验自动化发布带来的便利吧【免费下载链接】upload-release-actionUpload files to a GitHub release项目地址: https://gitcode.com/gh_mirrors/up/upload-release-action创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考