【问题标题】:If conditions in gitlab-ci.yml via shell-runner如果通过 shell-runner 在 gitlab-ci.yml 中的条件
【发布时间】:2018-07-29 13:46:54
【问题描述】:

同事们!这样的问题,是否可以通过远程服务器上的 shell-runner 使用 if 条件?这是一个测试gitlab-ci.yml:

world_branch:
  variables: 
    dir: "/home/TATATA"
  environment: staging
  script:
  - ssh-keyscan -H 192.168.0.12 >> ~/.ssh/known_hosts
  - ssh root@192.168.0.12 "
      'if [[ -d "$dir" ]]; then
          rm -r $dir && mkdir $dir
          fi'
       "
  - rsync -avz --delete-after --exclude=".git" --exclude=".gitlab-ci.yml" . root@192.168.0.12:/home/TATATA
  only: 
   - world

运行作业后,得到下一个错误:

bash: if [[ -d /home/TATATA ]] rm -r /home/TATATA && mkdir /home/TATATA fi: No such file or directory

【问题讨论】:

    标签: git gitlab gitlab-ci gitlab-ci-runner


    【解决方案1】:

    只能这样修复:

    - ssh root@192.168.0.12 "
           if [[ -d "$dir" ]]; then
             rm -r $dir && mkdir $dir;
           fi
           "
    

    我的意思是,比你需要放在 shell 命令之后;

    对于shell命令为两个或多个的结构,您只需在每个命令的末尾再添加一次;

    例如:

    - ssh root@192.168.0.12 "
         if [[ ! -d "$dir" ]]; then
            mkdir $dir;
            mkdir $dir/test;
         fi
         "
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-02
      • 1970-01-01
      • 2018-08-02
      • 2022-10-21
      • 2021-11-13
      • 2016-02-21
      相关资源
      最近更新 更多