相关疑难解决方法(0)

Gitlab-Ci:我如何在作业之间共享数据

我想在两个作业之间共享一个文件,如果有更改的文件则修改它.python脚本将cache.json文件与更改进行比较,并有时修改cahce文件.

.gitlab-ci.yaml:

image: ubuntu

stages:
  - test

cache:
  key: one-cache
  paths:
    - cache.json

 job1:
   stage: test

script:
  # - touch cache.json
  - cat cache.json
  - python3 modify_json_file.py
  - cat cache.json
Run Code Online (Sandbox Code Playgroud)

问题是cache.json在下次作业运行时文件不存在.我收到错误消息:cat: cache.json: No such file or directory.我也确实插入了一次touch命令,但是如果没有touch命令,这不会改变下一次运行的任何内容.

我做错了什么或者我不理解cacheat gitlab错了.

yaml gitlab gitlab-ci gitlab-ci-runner

7
推荐指数
1
解决办法
7590
查看次数

Gitlab 工件和未跟踪的

artifacts:untracked中的有什么用artifacts
我看到未跟踪的文件(例如二进制文件)是未设置的工件的一部分untracked: true
那么它有什么用呢?

artifacts gitlab gitlab-ci gitlab-ci-runner

7
推荐指数
2
解决办法
1万
查看次数

在 gitlab-ci 作业中将文件从摇杆容器传递到乳胶容器

我想使用 Gitlab CI 来编译一篇 Latex 文章,如tex.stackexchange 上的这个答案中所述(类似的 pdf 生成示例在artifactsgitlab 文档中显示)。我使用了期刊编辑提供的特殊乳胶模板。我的 Latex 文章包含使用 R 统计软件制作的数字。R 和 Latex 是两个具有很多依赖项的大型软件安装,因此我决定使用两个单独的容器进行构建,一个用于使用 R 进行统计分析和可视化,另一个用于将 Latex 文档编译为 pdf。

以下是内容.gitlab-ci.yml

knit_rnw_to_tex:
  image: rocker/verse:4.0.0
  script:
  - Rscript -e "knitr::knit('article.Rnw')"
  artifacts:
    paths:
      - figure/

compile_pdf:
  image: aergus/latex
  script:
  - ls figure
  - latexmk -pdf -bibtex -use-make article.tex
  artifacts:
    paths:
      - article.pdf
Run Code Online (Sandbox Code Playgroud)

knit_rnw_to_tex在 R "rocker" 容器中执行的作业成功,我可以从 gitlab "jobs" 页面下载图形工件。第二份工作的问题compile_pdfls figure向我显示了一个空文件夹,并且由于缺少数字,Latex 文章编译失败。

  • 根据这个答案和这个解释得很好的论坛帖子,应该可以使用工件在作业之间传递数据,但它们只使用一个容器来处理不同的作业。在我的情况下它不起作用。可能是因为我使用了两个不同的容器?
  • 另一种解决方案是仅使用rocker/tidyverse …

latex r gitlab gitlab-ci

6
推荐指数
1
解决办法
166
查看次数

标签 统计

gitlab ×3

gitlab-ci ×3

gitlab-ci-runner ×2

artifacts ×1

latex ×1

r ×1

yaml ×1