【问题标题】:GitLab pipeline - Copy file if existsGitLab 管道 - 如果存在则复制文件
【发布时间】:2022-11-17 18:44:33
【问题描述】:

我有一个管道,仅当文件存在于源文件夹中时,才需要将一些文件从文件夹复制到新文件。

这是我的脚本行:

script:
    - cp source_folder/file.txt dest_folder/ 2>/dev/null 

我也试过这个:

script:
    - test -f source_folder/file.txt && cp source_folder/file.txt dest_folder/ 2>/dev/null 

但如果文件不存在,仍然会失败。

清理项目目录和基于文件的变量。
错误:作业失败:退出代码 1

如何检查文件并仅在存在时复制它?

编辑:
此命令在服务器上执行,管道使用 ssh 登录

【问题讨论】:

    标签: gitlab-ci pipeline cp


    【解决方案1】:

    检查文件 (-f) 是否存在,如果是,则复制它。

    script:
      - |
        files=(conf.yaml log.txt)
    
        for file in $files; do
          if [[ -f "source_folder/$file" ]]; then
            cp source_folder/$file dest_folder
          fi
        done
    

    查看 other answers 以获得一次性不太灵活的陈述。

    注意:我没有测试过上面的脚本,但我对 Gitlab 管道和 bash 已经很熟悉了。

    【讨论】:

      猜你喜欢
      • 2013-05-22
      • 2021-12-17
      • 2014-01-04
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 2018-04-19
      相关资源
      最近更新 更多