Files
MySensors/.ci/doxygen.groovy
Patrick Fallberg 356b783e19 Script documentation generation and UML support (#992)
Documentation is now generated by invoking a shell script
which takes care of all the plumbing.
There is now also support of inlineing PlantUML syntax with
Doxygen. This inlining takes the form of
@startuml{imagename.png}
'PlantUML specific syntax'
@enduml
The inlineing can be made in C syntax comment blocks.
Doxygen will then include the generated UML diagram when
rendering the HTML documentation.
All generated images will be placed under Documentation/img
which is the default search path for Doxygen.
2017-11-16 22:21:01 +01:00

41 lines
1.8 KiB
Groovy

#!groovy
def call(config) {
config.pr.setBuildStatus(config, 'PENDING', 'Toll gate (Documentation)', 'Generating...', '${BUILD_URL}flowGraphTable/')
sh """#!/bin/bash
cd ${config.repository_root}
Documentation/doxygen.sh"""
warnings canComputeNew: false, canResolveRelativePaths: false,
defaultEncoding: '',
excludePattern: '''.*/sha204_library\\.h,.*/drivers/Linux/.*,.*/cores/esp8266/.*,hardware/.*''',
failedTotalAll: '', healthy: '', includePattern: '', messagesPattern: '',
parserConfigurations: [[parserName: 'Doxygen', pattern: config.repository_root+'doxygen.log']],
unHealthy: '', unstableTotalAll: '0'
publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: true,
reportDir: config.repository_root+'Documentation/html',
reportFiles: 'index.html', reportName: 'Doxygen HTML', reportTitles: ''])
if (!config.is_pull_request)
{
// Publish docs to API server
if (env.BRANCH_NAME == 'master') {
sh """#!/bin/bash
scp -r ${config.repository_root}Documentation/html docs@direct.openhardware.io"""
} else if (env.BRANCH_NAME == 'development') {
sh """#!/bin/bash
scp -r ${config.repository_root}Documentation/html docs@direct.openhardware.io:beta"""
}
} else {
if (currentBuild.currentResult == 'UNSTABLE') {
config.pr.setBuildStatus(config, 'ERROR', 'Toll gate (Documentation)', 'Warnings found', '${BUILD_URL}warnings16Result/new')
error 'Terminating due to doxygen error'
} else if (currentBuild.currentResult == 'FAILURE') {
config.pr.setBuildStatus(config, 'FAILURE', 'Toll gate (Documentation)', 'Error generating documentation', '${BUILD_URL}flowGraphTable/')
error 'Terminating due to doxygen error'
} else {
config.pr.setBuildStatus(config, 'SUCCESS', 'Toll gate (Documentation)', 'Pass', '${BUILD_URL}Doxygen_HTML/index.html')
}
}
}
return this