【问题标题】:Cleaning up file based variables. ERROR: Job failed: exit code 1清理基于文件的变量。错误:作业失败:退出代码 1
【发布时间】:2021-08-13 15:27:57
【问题描述】:

我正在使用 gitlab-ci 来自动化构建和发布。在上一项工作中,我想使用 lftp 将工件上传到远程服务器。

$(pwd)/publish/ 地址是上一个作业中生成的工件。以及在 gitlab Settings --> CI / CD 中声明的所有变量。

这是工作yaml代码:

upload-job:
    stage: upload
    image: mwienk/docker-lftp:latest
    tags:
        - dotnet
    only:
        - master
    script:
        - lftp -e "open $HOST; user $FTP_USERNAME $FTP_PASSWORD; mirror -X .* -X .*/ --reverse --verbose --delete $(pwd)/publish/ wwwroot/; bye"

请注意,lftp 会传输我的文件,但是我不确定我的所有文件都已传输。

我添加了echo "All files Transfered.",但它从未运行。

管道日志中没有错误和警告,但出现以下错误:

我不知道它是干什么用的。有没有人遇到过这个错误并找到了解决方案?

【问题讨论】:

  • 顺便说一句,它不会传输所有内容。我也有这个问题,这就是我所做的: lftp -p 22 -e "open $SERVER_HOST; user $FTP_USERNAME $FTP_PASSWORD; set ssl:check-hostname no; rm -r $SERVER_PROJECT_DIR/*; mirror -X 。 * -X .*/ --reverse --verbose --delete ./publish $SERVER_PROJECT_DIR; 再见"
  • 您是否还确保您的 ftp 帐户具有文件夹中的所有访问/写入权限?您可能需要 chmod 目录及其所有文件和子目录
  • @MrJami 您建议的脚本不起作用。用户可以完全控制目标文件夹。
  • 它根本不起作用?我的 gitlab 跑步者 2 分钟前刚刚使用它,它工作。或者你的意思是你有同样的错误?
  • @MrJami 它的工作方式与问题中的当前类似。

标签: bash shell gitlab yaml gitlab-ci


【解决方案1】:

最后,我通过lft命令参数的一些变化解决了这个问题。

ERROR: Job failed: exit code 1 故障排除的重点是使用带有verbose 参数的命令,该命令返回足够的日志以使您能够解决问题。还有一点很重要,就是要知道如何调试bash、powershell等shell脚本。

另外,您可以直接在 shell 中运行和测试命令,这很有帮助。

以下链接有助于对命令行脚本进行故障排除:

How to debug a bash script?

5 Simple Steps On How To Debug a Bash Shell Script

Use the PowerShell Debugger to Troubleshoot Scripts

对于 lftp 日志记录:

How to enable lftp protocol logging?

【讨论】:

    猜你喜欢
    • 2021-04-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 2020-05-19
    • 2014-02-26
    • 2018-08-27
    相关资源
    最近更新 更多