You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Actions中加载本地仓库数据集而不上传至远程?

解决方法

方案1:通过GitHub Secrets存储并还原数据库(适合小文件)

GitHub Secrets支持存储二进制文件的base64编码内容,可在工作流中解码还原文件:

  1. 本地将info.db转成base64编码:
    base64 data/info.db > info.db.base64
    
  2. 进入GitHub仓库的Settings → Secrets and variables → Actions,创建新仓库密钥INFO_DB_BASE64,粘贴info.db.base64里的全部内容。
  3. 在github-actions.yml中添加还原步骤:
    jobs:
      ml-task:
        runs-on: ubuntu-latest
        steps:
          - name: 拉取代码
            uses: actions/checkout@v4
          - name: 还原info.db文件
            run: |
              mkdir -p data
              echo "${{ secrets.INFO_DB_BASE64 }}" | base64 -d > data/info.db
          - name: 执行机器学习任务
            run: bash your-script.sh # 替换为你的bash脚本命令
    
  4. Python代码保持原相对路径写法即可,文件会被还原到指定目录。

方案2:使用GitHub Artifacts传递文件(适合跨工作流共享)

若数据库文件需从其他工作流传递,可先上传为Artifacts再下载:

  1. 创建上传Artifacts的工作流(如upload-db.yml),手动触发上传本地文件:
    jobs:
      upload-db:
        runs-on: ubuntu-latest
        steps:
          - name: 拉取代码
            uses: actions/checkout@v4
          - name: 上传info.db为Artifacts
            uses: actions/upload-artifact@v4
            with:
              name: info-db
              path: data/info.db
    
  2. 在目标工作流github-actions.yml中添加下载步骤:
    jobs:
      ml-task:
        runs-on: ubuntu-latest
        steps:
          - name: 拉取代码
            uses: actions/checkout@v4
          - name: 下载info.db文件
            uses: actions/download-artifact@v4
            with:
              name: info-db
              path: data/
          - name: 执行机器学习任务
            run: bash your-script.sh
    

方案3:使用自托管运行器(适合大文件或敏感数据)

如果数据库文件体积大或包含敏感信息,可部署自托管运行器让工作流在本地机器执行:

  1. 进入仓库Settings → Actions → Runners,选择New self-hosted runner,按照提示在本地机器完成运行器配置。
  2. 修改工作流指定使用自托管运行器:
    jobs:
      ml-task:
        runs-on: self-hosted
        steps:
          - name: 拉取代码
            uses: actions/checkout@v4
          - name: 执行机器学习任务
            run: bash your-script.sh
    
    此方式下工作流直接读取本地仓库的data/info.db,无需上传到远程。

注意事项

  • 敏感数据优先选择自托管运行器,Secrets的base64编码仅为简单转码,并非强加密。
  • 工作流中需确保mkdir -p data命令存在,避免因目录缺失导致文件还原失败。

内容的提问来源于stack exchange,提问作者Oaktree42

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 21:15:35