【问题标题】:Calling 'git lfs pull' in a CI/CD pipeline在 CI/CD 管道中调用“git lfs pull”
【发布时间】:2022-03-24 00:47:57
【问题描述】:

我将 CI/CD 管道与 git-lfs 结合使用。在我的脚本开始时,我想加载一个通过 LFS 存储的 pickle 文件(参见下面的代码)。我的代码在本地机器上运行良好,但在管道中出现以下错误:

_pickle.UnpicklingError: 无效的加载键,'v'

Itseemsthat这个错误是由于LFS文件没有被获取,可以通过一个简单的git lfs pull命令解决。

现在的问题是,我如何在管道中调用git lfs pull?我天真地尝试将它添加到我也调用我的 python 脚本的.yml 文件中,但这不起作用。如果这个问题有点愚蠢,我很抱歉,我有点超出了我的正常领域。

编辑有关错误发生时间和使用的 CI/CD 的一些详细信息:

这些是导致错误发生的行:

open("path_to_file/file", 'rb')
data = pickle.load(f)

我使用的是 Gitlab CI/CD,定义工作流的 .yml 文件如下:

before_script:
    - rm -rf "*-env"; python3.8 -m venv ${CI_JOB_ID}-env
    - ${CI_JOB_ID}-env/bin/pip3 install -U pip

after_script:
    - rm -rf ${CI_JOB_ID}-env

stages:
    - calculations

CalcStrategicValues:
    stage: calculations
    only:
        - calculate
    script:
        - ${CI_JOB_ID}-env/bin/pip3 install -r requirements.txt
        # - ${CI_JOB_ID}-env/git lfs pull           <- my attempt at solving the problem
        - ${CI_JOB_ID}-env/bin/python3 calculate.py
    allow_failure: false
    artifacts:
        name: results
        when: always
        paths:
            - output/

【问题讨论】:

  • 您的管道使用什么工具?您能否将相关部分包含在代码块中,以便我们提供建议?
  • @bk2204 不幸的是,我不确定您的意思,但是在调用f = open("path_to_file/file", 'rb')data = pickle.load(f) 行时会出现错误,其中file 是一个lfs 文件。
  • 您说您正在为代码使用 CI/CD 管道。那是 GitHub Actions 吗?是别的吗?编辑您的问题,以代码块形式向我们展示 GitHub Actions 工作流文件或其他 CI/CD 管道描述。
  • 感谢您澄清这一点。我将其添加到原始问题中。我希望这包含所有必需的信息。

标签: python git continuous-integration continuous-deployment git-lfs


【解决方案1】:

发布此内容,因为我没有看到任何其他答案。我有同样的问题,我在我正在使用的 shell 脚本中添加了以下几行

git install lfs
git lfs pull

这里是 .gitlab-ci.yml

stages:
  - pricing_deploy

.pdeploy: &pdeploy
    script:
    - chmod +x pdeploy.sh
    - ./pdeploy.sh $SERVER_NAME

deploy_pricing_files:
  stage: pricing_deploy
  variables:
    SERVER_NAME: $SERVER_BRM25
  <<: *pdeploy

我在 pdeploy.sh 脚本中添加了 lfs 安装和拉取

不确定它是否与最新的跑步者一起修复:https://gitlab.com/gitlab-org/gitlab-runner/-/issues/4742

无论如何希望这对某人有用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    相关资源
    最近更新 更多