Конвейеры Дженкинса позволяют автоматизировать рабочий процесс конвейера непрерывного развёртывания через скрипты в Дженкинсе. Можно записать Конвейерные скрипты, которые разрабатывают проекты, тестовые наборы запуска и выполняют все необходимые проверки, прежде чем код будет готов к поставке. Можно зарегистрироваться в этих скриптах как в части системы управления версиями и подвергнуть их тому же анализу и управлению версиями как сам код.
Можно запустить анализ Polyspace® в Конвейерном скрипте Дженкинса. Если вы не используете Вольные Проекты вместо Конвейеров в Дженкинсе, используйте плагин Polyspace для сценариев удобств. См. Демонстрационные Скрипты для Анализа Polyspace с Дженкинсом. Если вы используете Конвейеры, изменяете скрипт, предоставленный, чтобы запустить анализ Polyspace.
![]()
Чтобы запустить анализ Polyspace сервера и рассмотреть результаты в Polyspace доступ к веб-интерфейсу, необходимо выполнить одноразовую настройку.
Чтобы запустить анализ, необходимо установить один экземпляр Серверного продукта Polyspace.
Чтобы загрузить результаты, необходимо настроить компоненты, требуемые размещать веб-интерфейс Polyspace доступ.
Чтобы просмотреть загруженные результаты, у вас и каждого разработчика, рассматривающего результаты, должна быть одна лицензия Polyspace.
Смотрите сервер Polyspace установки и доступ к продуктам.
![]()
Создать Конвейерный скрипт Дженкинса:
В интерфейсе Дженкинса выберите New Item слева. Выберите Pipeline.
В разделе Pipeline проекта выберите Pipeline script для Definition. Введите этот скрипт.
Части полужирным указывают на места, где необходимо изменить скрипт для исходного кода и установки Polyspace.
node {
def module = "folder_to_hold_sources_and_results" // Replace with another foldername (or use job workspace)
def git_url = "https://github.com/lz4/lz4.git" //Replace with another Git URL
def git_sandbox = "${module}/lz4_sources" //Replace with path to sources
def polyspace_bin = "/usr/local/Polyspace/R2019a/polyspace/bin" // Replace with Polyspace installation folder
def configure = "${polyspace_bin}/polyspace-configure"
def configure_opts = "${module}/lz4.opts"
def analyze = "${polyspace_bin}/polyspace-bug-finder-server"
def results_dir = "${module}/results"
def protocol = "https" //Replace with "http" if Polyspace Access URL uses http
def host = "your-host-name" //Replace with host name of server hosting Polyspace Access
def port = "9443" //Replace with port number of server hosting Polyspace Access
def subject = "Polyspace analysis: $git_url" //Replace with a different mail subject line
def body = "Log available on ${BUILD_URL}/ConsoleFull" //Replace with a different mail body line
def to = "john@email.com" //Replace with a comma-separated list of email addresses
stage ("Prepare") {
sh script: "env"
sh label: "Cleanup", script: "rm -fr $module; mkdir -p $module"
}
stage ("Checkout") {
sh label: "Check out", script: "git clone $git_url $git_sandbox"
}
stage ("Configure") {
sh label: "Polyspace configure", script: "$configure -allow-overwrite -prog \"lz4\" -author jenkins -output-options-file $configure_opts make -C $git_sandbox"
}
stage ("Analyze") {
sh label: "Polyspace analysis", script: "$analyze -options-file $configure_opts -checkers all -results-dir $results_dir "
}
stage ("Upload") {
withCredentials([usernamePassword(credentialsId: 'credentials-id-from-jenkins-credentials-plugin', passwordVariable: 'password', usernameVariable: 'username')])
{
def access = "${polyspace_bin}/polyspace-access -tmp-dir tmp-dir -protocol ${protocol} -host ${host} -port ${port} -login ${username} -encrypted-password ${password}"
sh label: "Create folder on server", script: "$access -create-project \"/public/JenkinsProject\""
sh label: "Upload results on server", script: "$access -parent-project \"/public/JenkinsProject\" -upload $results_dir"
}
}
stage ("Notification") {
mail body: "$body", subject: "$subject", to: "$to"
}
} |
Когда вы разрабатываете этот проект, вы видите различные этапы анализа как это:

Этот скрипт может быть частью большего скрипта, который вы сохраняете в Jenkinsfile и соглашаетесь на свою систему управления версиями. Смотрите Используя Jenkinsfile.
Можно изменить скрипт по мере необходимости:
Скрипт запускает каждый шаг аналитического рабочего процесса Polyspace в отдельном stage раздел. Можно объединить несколько шагов вместе в одном stage.
Скрипт запускает команды Shell Linux® при помощи sh директива. Можно запустить команды Windows® при помощи bat директива вместо этого.
Скрипт использует данные из плагина Учетных данных, чтобы извлечь имя пользователя и пароль. Если вы сохраняете учетные данные в некоторой другой форме, можно заменить withCredentials команда, которая связывает удостоверения пользователя с переменными.
Скрипт создает исходный код с помощью make-файла на песочнице Git с этим make команда:
make -C $git_sandbox
Для получения дополнительной информации о Специфичном для конвейера синтаксисе в этом скрипте см.:
Конвейерный синтаксис: описывает node, stageМетка.
Конвейерная ссылка шагов: описывает sh, mail.
Учетные данные обязательный плагин: описывает withCredentials.
Для получения дополнительной информации о командах Polyspace в этом скрипте см.:
polyspace-bug-finder-server (также polyspace-code-prover-server (Polyspace Code Prover Server))
![]()