记使用Github工作流下载解压重打包Artifacts

在另一个工作流打包好的Artifacts,想在一个新的工作流下载并解压重新打包目标文件,说起来挺简单,还折腾了挺久。

1.下载

下载老老实实用gh(Github命令行),不想再折腾其他的所谓简单方法


    - name: Install GitHub CLI
      run: choco install gh

    - name: Download Artifacts from build.yml
      run: |
        gh run download run-id --repo author/reop --name filename --dir path --pattern "*.zip"
      env:
        GH_TOKEN: ${{ secrets.GH_TOKEN }}

2.配置TOKEN

如何设置 GH_TOKEN

  1. 创建 GitHub Personal Access Token (PAT):

    • 转到 GitHub Developer Settings 页面。
    • 点击 “Generate new token”,创建一个新的 token。
    • 选择适当的权限,例如 repoworkflow 等,取决于你要执行的操作。
    • 生成 token 并保存好它。
  2. 将 PAT 设置为 GitHub Actions 秘密:

    • 进入你的 GitHub 仓库页面。
    • 转到 Settings > Secrets and variables > Actions
    • 点击 New repository secret
    • 设定名称为 GH_TOKEN,并将刚才生成的 PAT 粘贴到值字段中。
    • 保存这个秘密。
  3. 在 GitHub Actions 工作流中使用 GH_TOKEN:

    • 在你的 GitHub Actions .yml 文件中,将 GH_TOKEN 作为环境变量传递给工作流步骤。

3.解压

可以使用tar,这里有个问题要注意,如果你upload Artifacts的时候,没有打包,而是upload的一个路径,那么,哪怕你下载是个zip,你也不用解压,他会直接下载成一个文件夹!

4.完整

name: Download and Repackage Artifacts

on:
  workflow_dispatch:

jobs:
  download_and_repackage:
    runs-on: windows-latest
    
    steps:
    - name: Checkout code
      uses: actions/checkout@v4.1.6

    - name: Install GitHub CLI
      run: choco install gh

    - name: Download Artifacts from build.yml
      run: |
        gh run download run-id --repo author/rep --name filename --dir path --pattern "*.zip"
      env:
        GH_TOKEN: ${{ secrets.GH_TOKEN }}

    - name: List Files in Directory
      run: |
        Get-ChildItem -Path D:\buildx\ | Format-Table Name, Length

    - name: Copy selected files
      run: |
        mkdir D:\selected-files\bin
        xcopy D:\buildx\a.exe D:\selected-files\bin\ /Y


    - name: Upload Repackaged Artifacts
      if: failure() || success() 
      uses: actions/upload-artifact@v4.3.3
      with:
        name: repackaged-artifact-15.0.2
        path: D:\selected-files

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值