Извлечение части строки на трубопроводе Дженкинса - PullRequest
0 голосов
/ 25 апреля 2018

У меня возникли некоторые проблемы с синтаксисом в моем конвейерном скрипте.

Я пытаюсь захватить все после последней косой черты "/" и перед последним периодом "."в этой строке git@github.com: project / access-server-pd.git (access-server-pd)

Здесь (ниже) - это то, как я хотел бы настроить его

MYVAR="git@github.com:project/access-server-pd.git" 

NAME=${MYVAR%.*}  # retain the part before the colon
NAME=${NAME##*/}  # retain the part after the last slash
echo $NAME

У меня есть текущая настройка с тройными кавычками на конвейерном скрипте:

  stage('Git Clone') {
  MYVAR="$GIT_REPO"
  echo "$MYVAR"
  NAME="""${MYVAR%.*}"""
  echo "$NAME"

Но я получаю неожиданный токен на "."ошибка.Как я мог бы написать это, чтобы я мог заставить это работать?

ОБНОВЛЕНИЕ: Эта команда добивается цели:

echo "git@github.com:project/access-server-pd.git" | sed 's#.*/\([^.]*\).*#\1#'

Теперь мне просто нужно найти правильный синтаксис для создания переменнойсохранить это значение.

1 Ответ

0 голосов
/ 01 мая 2018

В этом случае похоже, что использование нескольких методов Groovy / Java на String может извлечь части.

final beforeColon = url.substring(0, url.indexOf(':'))  // git@github.com
final afterLastSlash = url.substring(url.lastIndexOf('/') + 1, url.length()) // project/access-server-pd.git

Это использует несколько различных методов:

Вы должны быть осторожны с кодом, который вы используете в своем конвейере.Если он находится в «песочнице», он будет работать в защищенном домене, где каждый вызов проверяется на безопасность.Например, белый список в плагин безопасности сценариев белый список всех вызовов, использованных выше (например, method java.lang.String lastIndexOf java.lang.String).

Выполнение String манипуляции в вашем конвейерном коде совершенно разумно, так как вы можете принимать решения и изменять свою оркестровку на основе этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...