Версия: 1.0 Дата: 10 ноября 2025
Интеграция Accellens с Jenkins позволяет запускать web сканы как часть CI/CD pipelines. Поддерживает статусные проверки, публикацию отчётов и уведомления.
- Скопируйте
ci-cd/jenkins/accellens-pipeline.groovyв ваш Jenkins Shared Library - Настройте Shared Library в Jenkins:
- Manage Jenkins → Configure System → Global Pipeline Libraries
- Name:
accellens-pipeline - Default version:
main
- Используйте в Jenkinsfile:
@Library('accellens-pipeline') _
accellensPipeline(
project: 'my-project',
url: 'https://example.com',
outputFormat: 'json',
failOn: 'high'
)Скопируйте pipeline в ваш Jenkinsfile:
def accellensPipeline = load 'ci-cd/jenkins/accellens-pipeline.groovy'
accellensPipeline(
project: env.ACCELLENS_PROJECT,
url: env.ACCELLENS_URL,
outputFormat: 'json',
failOn: 'high'
)-
Установите плагины:
- NodeJS Plugin
- Pipeline Utility Steps
- HTML Publisher Plugin (опционально)
-
Настройте Node.js:
- Manage Jenkins → Global Tool Configuration → NodeJS
- Добавьте Node.js 20+
-
Добавьте credentials:
- Manage Jenkins → Credentials → System → Global credentials
- ID:
accellens-token - Type: Secret text
- Secret: Ваш Accellens API токен
| Параметр | Обязателен | По умолчанию | Описание |
|---|---|---|---|
project |
✅ | - | Slug проекта в Accellens |
url |
✅* | - | URL для сканирования (*если не указан urlsFile) |
urlsFile |
✅* | - | Файл со списком URL (*если не указан url) |
apiUrl |
❌ | https://api.accellens.dev |
Базовый URL API |
outputFormat |
❌ | json |
Формат отчёта: json, pdf, sarif |
failOn |
❌ | none |
Уровень для fail: critical, high, medium, low, none |
waitTimeout |
❌ | 900 |
Таймаут ожидания (секунды) |
commentPR |
❌ | false |
Публиковать комментарии в PR |
uploadArtifact |
❌ | true |
Загружать отчёт как артефакт |
Можно использовать переменные окружения вместо параметров:
ACCELLENS_PROJECTACCELLENS_URLилиACCELLENS_URLS_FILEACCELLENS_API_URLACCELLENS_OUTPUT_FORMATACCELLENS_FAIL_ONACCELLENS_WAIT_TIMEOUT
@Library('accellens-pipeline') _
accellensPipeline(
project: 'my-project',
url: 'https://example.com'
)pipeline {
agent any
parameters {
string(name: 'ACCELLENS_URL', defaultValue: 'https://example.com')
choice(name: 'ACCELLENS_FAIL_ON', choices: ['none', 'low', 'medium', 'high', 'critical'])
}
stages {
stage('Scan') {
steps {
script {
accellensPipeline(
project: 'my-project',
url: params.ACCELLENS_URL,
failOn: params.ACCELLENS_FAIL_ON
)
}
}
}
}
}stage('Accessibility Scans') {
parallel {
stage('Staging') {
steps {
script {
accellensPipeline(
project: 'my-project',
url: 'https://staging.example.com'
)
}
}
}
stage('Production') {
steps {
script {
accellensPipeline(
project: 'my-project',
url: 'https://example.com'
)
}
}
}
}
}- Артефакт отчёта (
accellens-report.json/pdf). - HTML отчёт (через HTML Publisher Plugin).
- Build status (pass/fail).
- Уведомления (email, Slack, и т.д.).
post {
always {
publishHTML([
reportName: 'Accessibility Report',
reportDir: '.',
reportFiles: 'accellens-report.json',
keepAll: true,
allowMissing: false
])
}
}post {
always {
junit 'accellens-report.sarif'
}
}post {
failure {
slackSend(
channel: '#accessibility',
color: 'danger',
message: "Accessibility scan failed for ${env.JOB_NAME} #${env.BUILD_NUMBER}"
)
}
success {
slackSend(
channel: '#accessibility',
color: 'good',
message: "Accessibility scan passed for ${env.JOB_NAME} #${env.BUILD_NUMBER}"
)
}
}ACCELLENS_TOKENхранится в Jenkins Credentials.- Используйте Secret text credentials для токенов.
- Рекомендуется использовать Jenkins Credentials Binding Plugin.
- Для production используйте HashiCorp Vault или AWS Secrets Manager интеграцию.
- Максимум 20 URL за запуск (MVP).
- Скан занимает до 10 минут; увеличивайте
ACCELLENS_WAIT_TIMEOUTпри необходимости. - Mobile сканы не поддерживаются (будет отдельный stage v1+).
| Симптом | Причина | Решение |
|---|---|---|
| Build timeout | Длинные сканы | Увеличить ACCELLENS_WAIT_TIMEOUT, оптимизировать URL список |
| HTTP 401 | Неверный токен | Обновить credentials, проверить права |
| CLI не найден | npm не установлен | Установить Node.js в Jenkins или использовать Docker agent |
- Jenkins Plugin для Accellens (v1).
- Mobile scan stage (
accellens/mobile-scan). - Blue Ocean интеграция.
- Pipeline as Code templates.