gitlab ci 管道部署 ftp 失败

Posted

技术标签:

【中文标题】gitlab ci 管道部署 ftp 失败【英文标题】:gitlab ci pipeline failed deploy ftp 【发布时间】:2020-06-14 00:58:02 【问题描述】:

我尝试使用 gitlab-ci.yml 构建和推送我的 react 构建文件夹 构建和测试通过,但部署失败,出现以下错误: 如果我在我的语言环境文件中执行相同的脚本,它可以工作!

lftp -e "mirror -R build/ ./test ; 退出" -u $USERNAME,$PASSWORD $HOST 镜像:访问失败:/builds/myGitLab/myGitlabProjectName/build:没有这样的文件或目录 lftp: MirrorJob.cc:242: void MirrorJob::JobFinished(Job*): 断言“transfer_count>0”失败。 /bin/bash: line 97: 275 Aborted (core dumped) lftp -e "mirror -R build/ ./test ; quit" -u $USERNAME,$PASSWORD $HOST 错误:作业失败:退出代码 1

这是我所有的 yml 文件:

图片:节点:13.8 阶段: - 建造 - 测试 - 部署 建造: 阶段:构建 脚本: - npm 安装 - npm 运行构建 测试: 阶段:测试 脚本: - 纱线 - 纱线测试 部署: 脚本: - apt-get 更新 && apt-get 安装 -y lftp -lftp -e "mirror -R build/ ./test ; 退出" -u $USERNAME,$PASSWORD $HOST
enter code here

【问题讨论】:

【参考方案1】:

我明白了!我从 docker 映像(节点)开始执行这 3 个阶段:构建、测试和部署但没有成功,但我尝试在部署阶段执行 ls-a 我意识到我没有构建文件夹.因为每次都会重新创建docker镜像,所以我添加了artifact来保留buid文件! 一旦构建阶段的工作“完成”。它会保存在一个变量 buid 中,以便下一个工作也可以部署!

image: node:13.8

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - npm install
    - npm run build
  only:
    - master
  artifacts:
    paths:
      - build

test:
  stage: test
  script:
    - yarn
    - yarn test

deploy:
  stage: deploy
  before_script:
    - apt-get update -qq
  script:
    - apt-get install -y -qq lftp
    - ls -a
    - lftp -e "set ssl:verify-certificate false; mirror --reverse --verbose --delete build/ ./test2 ; quit" -u $USERNAME,$PASSWORD $HOST
  only:
    - master

【讨论】:

【参考方案2】:

我有一部分答案,但我想做更好的事情 其实,我明白发生了什么。在构建 docker 映像的每个阶段,然后在构建测试和部署之后,不再有构建文件夹。 我不知道如何坚持 docker image 女巫是每个阶段的节点。 欢迎任何帮助。 为了使它起作用,我以这种方式在一个阶段完成了每个脚本: image: node:13.0.1

阶段: - 生产

构建: 阶段:生产 脚本: - npm 安装 - npm 运行构建 - npm 运行测试 - apt-get update -qq && apt-get install -y -qq lftp -lftp -e "mirror -R build/ ./test ; 退出" -u $USERNAME,$PASSWORD $HOST 只要: - 掌握

【讨论】:

那么,这个问题现在解决了吗?如果不是,请编辑您的问题以包含所有信息并删除此答案 您提出了问题,并发布了两个答案,您可以清理一下吗?这不应该是一个答案。

以上是关于gitlab ci 管道部署 ftp 失败的主要内容,如果未能解决你的问题,请参考以下文章

在部署阶段发布 CI GitLab

使用 GitLab CI 通过 python 脚本部署到 FTP

GitLab-CI:无法再使用 lftp 进行部署

Gitlab-CI:测试作业失败

在 gitlab ci 脚本功能失败时掩码退出 1

.gitlab-ci.yml配置参数