Задать вопрос
@OwDafuq

Jenkins, Jenkinsfile, dotnet pack, почему ошибка?

В репозитории 2 ветки: master, build. build ветка должна выполнять еще 1 действие в Jenkinsfile, а именно - упаковка библиотеки в nuget пакет:
stage("publish") {
    when {
        expression {
            GIT_BRANCH == 'build'
        }
    }
    steps {
        bat "dotnet pack -c Release -o ".\artifacts" --no-build"
    }
}

Но такой Jenkinsfile выдает ошибку: WorkflowScript: 30: unexpected char: '\' @ line 30, column 38.

Как быть в этой ситуации, когда надо указать путь, но он ругается на обратный слеш? (пробовал поставить 2 - тоже самое, двойные кавычки менял на одинарные - тоже самое)

Можно ли как-то унифицировать Jenkinsfile, чтобы он работал и на Windows, и на Linux? (sh в Windows сваливается в ошибку Caused: java.io.IOException: Cannot run program "nohup")

Полный Jenkinsfile:
pipeline {
    agent any

    stages {
        stage("clean") {
            steps {
                bat "dotnet clean -c Release"
            }
        }

        stage("build") {
            steps {
                bat "dotnet build -c Release"
            }
        }

        stage("test") {
            steps {
                bat "dotnet test -c Release --no-build --verbosity=normal"
            }
        }

        stage("publish") {
            when {
                expression {
                    GIT_BRANCH == 'build'
                }
            }
            steps {
                bat "dotnet pack -c Release -o ".\artifacts" --no-build"
            }
        }
    }
}
  • Вопрос задан
  • 142 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
emekhanikov
@emekhanikov
Разработчик и архитектор программного обеспечения
А попробуйте слеш такой / он универсальный
Чтоб совсем универсально надо собирать в Docker контейнере
Ответ написан
AshBlade
@AshBlade
Просто хочу быть счастливым
stage("publish") {
    when {
        expression {
            GIT_BRANCH == 'build'
        }
    }
    steps {
        bat 'dotnet pack -c Release -o ".\artifacts" --no-build'
    }
}


Попробуй так. Я заменил тип кавычек с двойных на одинарные
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы