Команды оболочки CI Concourse в кавычках - PullRequest
0 голосов
/ 20 ноября 2018

Мы пытаемся скопировать несколько jar-файлов в файле Concourse CI package.yml как часть шага run:

run:
  path:
    args:
      - -exc
      - |
        ...
        cp project/target/*.jar build-output/.

Но Concourse добавляет одинарные кавычки в исходный файл, так чтоон ищет файл с именем 'project/target/*.jar' и, конечно, не находит его.

+ cp 'project/target/*.jar' build-output/.  
cp: can't stat 'project/target/*.jar'; no such file or directory  

Я даже пытался поместить двойные кавычки вокруг имени файла jar, надеясь, что это может помешать Concourse изменить его, но это не имело никакого значения.

Мы хотим использовать подстановку файлов, чтобы мы могли использовать это обобщенно, чтобы нам не нужно было заранее знать имена файлов.Есть ли способ заставить это работать?

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

set -x режим цитирует все аргументы;это не значит, что он на самом деле процитировал аргумент.Я думаю, у тебя была красная сельдь, но я рада, что она сработала.

0 голосов
/ 20 ноября 2018

Bizarre.Попробуйте указать оболочку:

run:
  path: sh                <== missing `sh` or the shell you have available in the image
    args:
      - -exc
      - |
        ...
        cp project/target/*.jar build-output/    <== no `.`

Мхххх, на самом деле, может быть, цитаты вводят в заблуждение, ниже ничего нет project/target :-) Попробуйте с

run:
  path: sh                <== missing `sh` or the shell you have available in the image
    args:
      - -exc
      - |
        ...
        # is anything here ?
        ls -1 project/target
        cp project/target/*.jar build-output/    <== no `.`
...