2025-02-04 02:23:25 +00:00
|
|
|
package com.freeleaps.devops
|
|
|
|
|
|
|
|
|
|
class CommitMessageLinter {
|
|
|
|
|
def steps
|
|
|
|
|
private defaultRule = 'com/freeleaps/devops/builtins/commitlint/default.js'
|
|
|
|
|
|
|
|
|
|
CommitMessageLinter(steps) {
|
|
|
|
|
this.steps = steps
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def lint(configurations) {
|
|
|
|
|
def rules = steps.libraryResource 'com/freeleaps/devops/builtins/commitlint/default.js'
|
|
|
|
|
steps.log.info "Check if there has custom commit lint rules specified..."
|
|
|
|
|
|
|
|
|
|
if (configurations.commitLintRules != null && !configurations.commitLintRules.isEmpty()) {
|
|
|
|
|
steps.log.info "Custom commit lint rules found, using custom rules files: ${configurations.commitLintRules}"
|
|
|
|
|
rules = configurations.commitLintRules
|
|
|
|
|
} else {
|
|
|
|
|
steps.log.info "No custom commit lint rules found, using built-in rules at: ${defaultRules}"
|
|
|
|
|
steps.sh "echo ${rules} > .commitlintrc.js"
|
|
|
|
|
rules = '.commitlintrc.js'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
steps.log.info "Linting commit messages from HEAD..."
|
|
|
|
|
|
2025-02-04 02:29:49 +00:00
|
|
|
steps.dir(steps.env.workspace) {
|
|
|
|
|
steps.sh "commitlint --verbose -g ${rules} -f HEAD^"
|
|
|
|
|
}
|
2025-02-04 02:23:25 +00:00
|
|
|
}
|
|
|
|
|
}
|