Интеграция PyLint с Jenkins
Установка pylint на Centos
Генерация конфигурационного файла
После генерации файла его необходимо поместить в корневой каталог проекта
Запуск в Jenkins
1. В настройках Jenkins — управление плагинами установить плагины “Violations plugin” для генерации наглядного отчета
2. Создать проект (job) со свободной конфигурацией
3. В пункте управления исходным кодом вставить ссылку до репозитория
4. В пункте сборки выбрать “Выполнить команду shell” или “Execute Shell”. В поле ввода ввести команду:
5. В пункте послесборочных операций выбрать “Report Violations“
6. Сохранить проект и выполнить
Рис.1. Результат выполнения проверок PyLint
Рис.2. Результат выполнения проверок PyLint — продолжение 1
Рис.3. Результат выполнения проверок PyLint — продолжение 2
Рис.4. Результат выполнения проверок PyLint — продолжение 3
Рис.5. Результат выполнения проверок PyLint — продолжение 4
Рис.6. Результат выполнения проверок PyLint — продолжение 5
Интеграция SonarQube с Jenkins
Установка и настройка MySQL для SonarQube:
Установка SonarQube на Centos:
Скачивание установочного файла в /opt
Установка unzip и java
Разархивирование sonarqube
Настройка конфигурационного файла
Запуск SonarQube:
Настройка SonarQube как сервиса:
Создать файл
Скопировать в содержимое файла
Создание ссылки на SonarQube
Настройка прав и добавление в boot
Запуск sonar
Установка sonar runner:
Необходимо в корне проекта создать файл sonar-project.properties. Пример содержания файла:
Запуск в Jenkins:
1. В настройках Jenkins — управление плагинами установить плагины “SonarQube Scanner for Jenkins” для генерации наглядного отчета
2. Перейти в “Настройки Jenkins” — “Конфигурирование системы” — “SonarQube servers” (если данной конфигурации не будет, то необходимо перезагрузить Jenkins). Далее нужно заполнить поля конфигурации:
Рис.8. Настройка SonarQube сервера в системе непрерывной интеграции Jenkins
3. Перейти в “Настройки Jenkins” — “Global Tool Configuration” — “SonarQube Scanner”. Заполнить поля конфигурации
Рис.9. Настройка SonarQube сканера в системе непрерывной интеграции Jenkins
4. Создать проект (job) со свободной конфигурацией
5. В пункте управления исходным кодом вставить ссылку до репозитория
6. В пункте сборки выбрать “Execute SonarQube Scanner”
В поле “Analysis properties” ввести параметры из файла sonar-project.properties или указать путь до данного файла
7. Сохранить проект и запустить
Рис.10. Результат выполнения работы SonarQube
Рис.11. Результат выполнения работы SonarQube — продолжение 1
Перейдя по ссылке из результата выполнения проекта localhost:9000/sonar/dashboard/index/keystone можно детально рассмотреть отчет по проверке качества кода keystone
Рис.12. Пример сгенерированного отчета SonarQube
Рис.13. Пример сгенерированного отчета SonarQube — продолжение 1
Установка pylint на Centos
pip install pylint
Генерация конфигурационного файла
touch pylint.cfg
pylint --generate-rcfile > pylint.cfg
После генерации файла его необходимо поместить в корневой каталог проекта
Запуск в Jenkins
1. В настройках Jenkins — управление плагинами установить плагины “Violations plugin” для генерации наглядного отчета
2. Создать проект (job) со свободной конфигурацией
3. В пункте управления исходным кодом вставить ссылку до репозитория
4. В пункте сборки выбрать “Выполнить команду shell” или “Execute Shell”. В поле ввода ввести команду:
find /var/lib/jenkins/workspace/$JOB_NAME/<path/to/check> -iname "*.py" | xargs pylint --disable=all
5. В пункте послесборочных операций выбрать “Report Violations“
6. Сохранить проект и выполнить
Рис.1. Результат выполнения проверок PyLint
Рис.2. Результат выполнения проверок PyLint — продолжение 1
Рис.3. Результат выполнения проверок PyLint — продолжение 2
Рис.4. Результат выполнения проверок PyLint — продолжение 3
Рис.5. Результат выполнения проверок PyLint — продолжение 4
Рис.6. Результат выполнения проверок PyLint — продолжение 5
Интеграция SonarQube с Jenkins
Установка и настройка MySQL для SonarQube:
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
sudo yum update -y
sudo yum install mysql-server
sudo systemctl start mysqld
sudo mysql_secure_installation - нажать enter если пароль по умолчанию отсутствует
mysql -u root -p
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
Установка SonarQube на Centos:
Скачивание установочного файла в /opt
cd /opt
sudo wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.0.zip
Установка unzip и java
sudo yum install unzip -y
sudo yum install java-1.8.0-openjdk -y
Разархивирование sonarqube
sudo unzip sonarqube-6.0.zip
mv sonarqube-6.0 sonarqube
Настройка конфигурационного файла
vi /opt/sonarqube/conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.web.host=localhost
sonar.web.context=/sonar
sonar.web.port=9000
По ссылке http://localhost:9000 будет находиться сервер sonarqube
Запуск SonarQube:
cd /opt/sonar/bin/linux-x86-64/
sudo ./sonar.sh start
Настройка SonarQube как сервиса:
Создать файл
/etc/init.d/sonar
Скопировать в содержимое файла
#!/bin/sh
#
# rc file for SonarQube
#
# chkconfig: 345 96 10
# description: SonarQube system (www.sonarsource.org)
#
### BEGIN INIT INFO
# Provides: sonar
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: SonarQube system (www.sonarsource.org)
# Description: SonarQube system (www.sonarsource.org)
### END INIT INFO
/usr/bin/sonar $*
Создание ссылки на SonarQube
sudo ln -s /opt/sonarqube/bin/linux-x86-64/sonar.sh /usr/bin/sonar
Настройка прав и добавление в boot
sudo chmod 755 /etc/init.d/sonar
sudo chkconfig --add sonar
Запуск sonar
sudo service sonar start
Установка sonar runner:
yum install sonar-runner
wget http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.4/sonar-runner-dist-2.4.zip
unzip sonar-runner-dist-2.4.zip
mv sonar-runner-2.4 /opt/sonar-runner
export SONAR_RUNNER_HOME=/opt/sonar-runner
export PATH=$PATH:$SONAR_RUNNER_HOME/bin
Необходимо в корне проекта создать файл sonar-project.properties. Пример содержания файла:
Запуск в Jenkins:
1. В настройках Jenkins — управление плагинами установить плагины “SonarQube Scanner for Jenkins” для генерации наглядного отчета
2. Перейти в “Настройки Jenkins” — “Конфигурирование системы” — “SonarQube servers” (если данной конфигурации не будет, то необходимо перезагрузить Jenkins). Далее нужно заполнить поля конфигурации:
Рис.8. Настройка SonarQube сервера в системе непрерывной интеграции Jenkins
3. Перейти в “Настройки Jenkins” — “Global Tool Configuration” — “SonarQube Scanner”. Заполнить поля конфигурации
Рис.9. Настройка SonarQube сканера в системе непрерывной интеграции Jenkins
4. Создать проект (job) со свободной конфигурацией
5. В пункте управления исходным кодом вставить ссылку до репозитория
6. В пункте сборки выбрать “Execute SonarQube Scanner”
В поле “Analysis properties” ввести параметры из файла sonar-project.properties или указать путь до данного файла
7. Сохранить проект и запустить
Рис.10. Результат выполнения работы SonarQube
Рис.11. Результат выполнения работы SonarQube — продолжение 1
Перейдя по ссылке из результата выполнения проекта localhost:9000/sonar/dashboard/index/keystone можно детально рассмотреть отчет по проверке качества кода keystone
Рис.12. Пример сгенерированного отчета SonarQube
Рис.13. Пример сгенерированного отчета SonarQube — продолжение 1
Поделиться с друзьями
chemtech
Ilusa Вы можете сделать скриншоты масштабируемыми?