结合使用。在脚本的开头,我想加载一个通过LFS存储的泡菜文件(请参阅下面的代码)。我的代码在本地计算机上运行正常,但是在管道中,我会收到以下错误:
_pickle.unpicklingerror:无效的负载密钥,'v' 此错误是由LFS文件未被获取并可以通过简单的git lfs pull
命令解决的。
现在的问题是,我该如何在管道中打电话?我天真地尝试将其添加到
git lfs pull
文件中,我也会调用我的python脚本,但这无效。很抱歉,如果这个问题有点愚蠢,我在这里的正常领域有点
eDIT有一些详细信息,涉及何时发生误差以及使用的CI/CD:
这些是导致错误发生的线:
.yml
我正在使用gitlab ci/cd和定义工作流的文件的文件如下:
open("path_to_file/file", 'rb')
data = pickle.load(f)
对此进行构成,因为我看不到其他答案。我遇到了同样的问题,我在使用的shell脚本中添加了以下几行
.yml
gitlab-ci.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/
我添加了LFS安装并拉到pdeploy.sh脚本
不确定它是否与最新的跑步者进行了修复:Https://gitlab.com/gitlab-org/gitlab-runner/-/issues/4742
希望这对某人很有用