首页 > 解决方案 > 清理基于文件的变量。错误:作业失败:退出代码 1

问题描述

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

$(pwd)/publish/address 是在上一个作业中生成的工件。以及在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.",但它从不运行。

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

在此处输入图像描述

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

标签: bashshellgitlabyamlgitlab-ci

解决方案


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

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

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

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

如何调试 bash 脚本?

关于如何调试 Bash Shell 脚本的 5 个简单步骤

使用 PowerShell 调试器对脚本进行故障排除

对于lftp日志记录:

如何启用 lftp 协议日志记录?


推荐阅读