Конвейеры Дженкинса позволяют автоматизировать рабочий процесс конвейера непрерывного развёртывания через скрипты в Дженкинсе. Можно записать Конвейерные скрипты, которые разрабатывают проекты, тестовые наборы запуска и выполняют все необходимые проверки, прежде чем код будет готов к поставке. Можно зарегистрироваться в этих скриптах как в части системы управления версиями и подвергнуть их тому же анализу и управлению версиями как сам код.
Можно запустить анализ 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 в этом скрипте см.: