как использовать строку не начинается с groovy - PullRequest
0 голосов
/ 22 января 2020

Я хочу написать условие в groovy, где имя ветви не должно равняться развивающемуся и не должно начинаться с выпуска. Я попробовал ниже код. Пожалуйста, помогите исправить это.

if ("${BRANCH_NAME}"!="develop" ||! ("${BRANCH_NAME}".startsWith("release")))
        {
        properties(
        [
    buildDiscarder(logRotator(daysToKeepStr: '60', numToKeepStr: '7')),
        ]
                  )
        }

1 Ответ

0 голосов
/ 23 января 2020

Основная проблема: вы используете ИЛИ вместо AND. Это означает, что оба условия должны быть одновременно истинными, чтобы не входить в блок кода. Там, где, я думаю, вы действительно хотите, если они верны, пропустите.

Я также изменил только общий синтаксис. GString не требуется, нет необходимости выполнять интерполяцию строки, если ее всего 1 переменная. И строки не должны быть GString, если нет переменных. Поэтому удалили кавычки для имени ветви и преобразовали остальные в обычные строки (одинарная кавычка)

Также просто примечание, я не думаю, что вы должны заключить весь конвейер в это выражение if. Вероятно, хорошо иметь ваши свойства снаружи и просто блокировать выполнение logi c.

#!groovy

if (env.BRANCH_NAME != 'develop' && !(env.BRANCH_NAME).startsWith('release')) {
    properties([
        buildDiscarder(logRotator(daysToKeepStr: '60', numToKeepStr: '7')),
    ])
    echo 'here'
}
...