为什么 Gitlab-CI 在下一阶段删除工件?

2024-02-26

指定依赖关系后,Gitlab-CI当进入下一阶段时,仍然会从工作目录中删除工件。我已经尝试了该代码的所有不同变体,我认为这些变体应该有效,但没有成功。此外,我已经阅读了几个小时但尚未成功。

亚搏体育实验室11.6.0

stages:
    - build_app
    - build_container
    - test
    - release
    - deploy

variables:
  IMAGE_TEST_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
  IMAGE_RELEASE_NAME: $CI_REGISTRY_IMAGE:latest

build_app:
  stage: build_app
  script:
    - echo "compile the program"
    - zip zipfile.zip helloworld.txt 
    - pwd
    - ls -al
  artifacts:
    paths:
      - /zip

build_container:
  stage: build_container
  before_script:
    - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" "$CI_REGISTRY" --password-stdin
  dependencies:
    - build_app
  script:
    - pwd
    - ls -al
    - docker build --pull -t $IMAGE_TEST_NAME .
    - docker push $IMAGE_TEST_NAME

test:
  stage: test
  before_script:
    - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" "$CI_REGISTRY" --password-stdin
  script: 
    - docker pull $IMAGE_TEST_NAME
    - docker run $IMAGE_TEST_NAME yum install unzip -y && unzip /helloworld.zip && cat /helloworld.txt

release:
  stage: release
  before_script:
    - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" "$CI_REGISTRY" --password-stdin
  script:
    - docker pull $IMAGE_TEST_NAME
    - docker tag $IMAGE_TEST_NAME $IMAGE_RELEASE_NAME
    - docker push $IMAGE_RELEASE_NAME
  only:
    - master

deploy:
  stage: deploy
  script:
    - ./deploy.sh
  only:
    - master
  when: manual

错误来自build_container stage:

Running with gitlab-runner 11.6.1 (8d829975)
  on gitrunner-shell trtHcQTS
Using Shell executor...
Running on gitrunner.example.com...
Fetching changes...
Removing zipfile.zip #################### <------------- this right here
HEAD is now at 07e787e Update .gitlab-ci.yml
Checking out 07e787ec as newFeature...
Skipping Git submodules setup
$ echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" "$CI_REGISTRY" --password-stdin
WARNING! Your password will be stored unencrypted in /home/gitlab-runner/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
$ pwd
/home/gitlab-runner/builds/trtHcQTS/0/dhealy/docker-helloworld-test
$ ls -al
total 12
drwxrwxr-x 3 gitlab-runner gitlab-runner   80 Jan 22 12:10 .
drwxrwxr-x 4 gitlab-runner gitlab-runner   70 Jan 21 17:48 ..
-rw-rw-r-- 1 gitlab-runner gitlab-runner   57 Jan 22 12:10 dockerfile
drwxrwxr-x 5 gitlab-runner gitlab-runner  138 Jan 22 12:10 .git
-rw-rw-r-- 1 gitlab-runner gitlab-runner 1450 Jan 22 12:10 .gitlab-ci.yml
-rw-rw-r-- 1 gitlab-runner gitlab-runner   11 Jan 22 12:10 helloworld.txt
$ docker build --pull -t $IMAGE_TEST_NAME .
Sending build context to Docker daemon    151kB

Step 1/3 : FROM centos:7
7: Pulling from library/centos
Digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426
Status: Image is up to date for centos:7
 ---> 1e1148e4cc2c
Step 2/3 : COPY zip/helloworld.zip /
COPY failed: stat /var/lib/docker/tmp/docker-builder929937870/zip/helloworld.zip: no such file or directory
ERROR: Job failed: exit status 1

我期待着helloworld.zip在下一阶段将存在于工作目录中,build_container.


zip 文件被删除是完全正常的,因为在每个作业开始时,源都会与当前提交同步。

您的问题来自 zip 文件的工件路径,该路径在 build_app 作业中不正确。你应该写:

artifacts:
  paths:
  - zipfile.zip
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Gitlab-CI 在下一阶段删除工件? 的相关文章

随机推荐

  • 我可以 #include 定义 DWORD 的最小 Windows 标头是什么?

    我自己有一个小头文件 它声明了几个函数 其中一个函数的返回类型为DWORD 我舍不得拖进去windows h只是为了获得此类型的官方定义 因为该文件很大 并且我的标头将在许多不需要它的源模块中使用 当然 在实践中我知道DWORD只是unsi
  • Datanode 进程未在 Hadoop 中运行

    我使用以下命令设置并配置了多节点 Hadoop 集群本教程 http www michael noll com tutorials running hadoop on ubuntu linux multi node cluster form
  • 使用 ggplot2 >= 2.0 中的贴标器混合空和 bquote-d 刻面标签

    在 2 0 之前 在 ggplot2 中我可以使用element blank and labeller仅标记行或列facet grid like library ggplot2 g lt ggplot mtcars geom point a
  • 如何在 PowerPoint VBA 中模拟 ThisPresentation

    我希望能够从加载项本身的一些 VBA 代码访问 PowerPoint 加载项文件 另存为 PowerPoint 加载项 ppa 的演示文稿 的文档属性 如果它有助于理解问题 我实际上想做的是读取存储加载项版本号的自定义文档属性 以便我可以在
  • 使用 spring security 以编程方式登录用户

    其相反 如何使用 Spring Security 手动注销用户 https stackoverflow com q 5727380 106261 在我的应用程序中我有注册新用户屏幕 它发布到一个控制器 该控制器在数据库中创建一个新用户 并进
  • SSL 证书不起作用 - “无起始行”错误 - Apache2 Ubuntu 16.04.1

    我们正在办公室设置一个新的子域 并使用我们拥有的通配符 SSL 证书 我已经创建了我的密钥和 csr 文件 然后我发送到 csr 文件以获取我们现在拥有的 cer 文件 我将发布我进一步运行的命令 然后 在为我们的新域使用 a2ensite
  • 理解正则表达式 if then 语句

    所以我不确定我是否理解这是如何工作的并且想要a simple explanation to how they work是全部 我可能还差得很远 A pure regex solution is required and I don t kn
  • VBA 中的索引 (Access 2003) - 字段关联

    基于 Microsoft Access 如何知道为索引字段集合创建的字段与 TableDef 字段集合中的等效字段关联 Even in 此 Microsoft 支持页面 https support microsoft com en us k
  • 复制 DOM 元素及其事件在变量中 (jQuery)

    我想复制变量中的 DOM 元素 所以我这样做了 var before someid html 然后我的脚本在这个 someid DOM 中做了很多事情 完成后我像以前一样恢复了 DOM someid html 之前 这工作正常 但问题是我在
  • 响应使浏览器不执行任何操作 - 这可能吗?

    是否有可能做出这样的 HTTP 响应 浏览器会忽略它并继续显示先前显示的页面 我的意思是以下场景 a 用户点击某物 b 一些 POST 发送到服务器 或 GET 但我们还是使用 POST 因为更有趣 c 服务器由于某种原因决定此时不想发送回
  • Python 命令行(参数太少)

    我的 python 系统调用有问题 我已经设置了 python 路径和路径文本 这些命令适用于我的计算机 run py python runWithParamater py parameterExample txt 但如果我跑 runWit
  • gae 错误:AttributeError:“NoneType”对象没有属性“user_is_member”

    class Thread db Model members db StringListProperty def user is member self user return str user in self members and thr
  • 使用 AWS Elastic LoadBalancer 公开 kubernetes 应用程序

    我创建了一个内部 AWS 弹性应用程序负载均衡器 并在 AWS 控制台中将其状态显示为活动 请注意 我使用 jenkins 作业创建了此 ALB 并且在该作业中我指定了我的 AWS EC2 实例服务器 该服务器配置为我的 kubernete
  • Cmake target_link_libraries 未链接我的库

    我将开始声明我在 Cmake 问题上几乎完全愚蠢 我有以下内容CMakeLists txt对于 Kdevelop 4 1 项目 project uart find package KDE4 REQUIRED include KDE4Defa
  • PCL:可视化点云

    我正在尝试使用可视化点云PCL http pointclouds org 云浏览器 问题是我对 C 很陌生 我找到了两个教程first https pcl readthedocs io projects tutorials en lates
  • 在尝试 Android 编程之前我应该​​学多少 Java? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我一直在寻找Android的初学者学习书籍 当然发现我应该先学习Java 所以我开始学习 Java 现在我对对象 类 继承 接口非常熟悉 并且刚
  • 通过 C# Graphics 绘制“透明”文本,但在某种程度上它将绘制的文本变为“缺失”,因此它在结果图像中是透明的

    我希望在 DC 上绘制一个字符串 图形 我正在使用 C 但我希望将绘制的文本从图像中 删除 以便剩下的本质上是文本的剪切 如果我用透明画笔绘制绳索 显然什么都不会发生 有没有一种方法可以绘制类似的东西 或者我是否需要使用 2 个 DC 和
  • Pyopengl 镶嵌多边形

    我有以下形式的多边形 1 2 2 4 3 4 5 6 我需要镶嵌来绘制它们 但是 glutes 太复杂了 Opengl 无法处理凸多边形 我想我需要类似的东西 http www math uiuc edu gfrancis illimath
  • 如何为单个文件启用 ARC

    我想将使用 ARC 编写的单个 Objective C 类引入旧项目中 互联网提供了许多关于如何为项目启用 ARC 然后为单个文件禁用它的参考 但我想做相反的事情 我想保持项目原样 即使用手动引用计数 然后仅为新文件启用 ARC 我的搜索在
  • 为什么 Gitlab-CI 在下一阶段删除工件?

    指定依赖关系后 Gitlab CI当进入下一阶段时 仍然会从工作目录中删除工件 我已经尝试了该代码的所有不同变体 我认为这些变体应该有效 但没有成功 此外 我已经阅读了几个小时但尚未成功 亚搏体育实验室11 6 0 stages build