-
Notifications
You must be signed in to change notification settings - Fork 3
Actions
На каждый push и pull request (события, actions) автоматически запускаются задачи (jobs)
Задачи описаны в файлах yml и находятся в /.github/workflows
и состоят из шагов (steps)
Когда происходит событие, GitHub на своей виртуальной машине воспроизводит описанные шаги, процесс доступен во вкладке Actions
Этот процесс описан в файле /.github/workflows/analyze.yaml
Состоит из 3 задач, которые запускаются параллельно:
В этой задаче клонируется репозиторий, устанавливается Java JDK 11, загружаются из кэша maven пакеты. (Во время сборки maven проекта отсутствующие в кэше пакеты скачиваются с сети и загружаются в кэш и потом доступны при следующем запуске задачи)
Код анализируется с помощью SonarCube. Для правильной интеграции с SonarCloud нужно указать следующие параметры:
-Dsonar.projectKey=kghackers_kgparser
-Dsonar.organization=kghackers
-Dsonar.host.url=https://sonarcloud.io
-Dsonar.login=$SONAR_TOKEN
В не зависимости от результата выполнения шагов в задаче (fail/success), приходит оповещение в телеграмм группу KG Parser CI/CD
В этом задаче клонируется репозиторий и инициализируется CodeQL с указанием настроек:
config-file
: путь к файлу с конфигами Using a custom configuration file
languages
: язык, который будем анализировать, в данном случае javascript
queries
: условия, какие проверяются, можно указывать несколько групп условия (безопасность, стиль и т.д.) или же писать свои условия и подключать их Running Additional Queries
Результаты анализа доступны во вкладке Security меню Code Scanning Alerts подменю CodeQL
В этой задаче клонируется репозиторий, устанавливается Java JDK 11, загружаются из кэша maven пакеты и инициализируется CodeQL с указанием настроек, подобно codeql_js
Дополнительно в этой задаче есть шаг Autobuild, который автоматически собирает maven проект и потом производит анализ. Результаты доступны там же, где и результаты codeql_js
Изменения в https://github.com/kghackers/kgparser/pull/54
Вместо клонирования и сборки репозитория с kefir, теперь kefir-util
и kefir-srv
подгружаются из директории jboss-libs
Все действия по анализу кода помещены в один workflow и разделены на три задачи:
- SonarCloud — анализирует проект с помощью sonarcube и отправляет результаты на sonarcloud
- CodeQL JS — анализирует js код в проекте и результаты загружает во вкладку Security
- CodeQL Java — анализирует java код в проекте и результаты загружает во вкладку Security
Задачи запускаются параллельно. Это дефолтное поведение в GitHub Actions.
Для результата задачи SonarCloud происходит оповещение в telegram группу. Для codeql — нет.
Resolves #41