initial classes
This commit is contained in:
113
Jenkinsfile
vendored
Normal file
113
Jenkinsfile
vendored
Normal file
@@ -0,0 +1,113 @@
|
||||
pipeline {
|
||||
agent {
|
||||
label 'puppet'
|
||||
}
|
||||
|
||||
post {
|
||||
always {
|
||||
deleteDir() /* clean up our workspace */
|
||||
}
|
||||
success {
|
||||
updateGitlabCommitStatus state: 'success'
|
||||
}
|
||||
failure {
|
||||
updateGitlabCommitStatus state: 'failed'
|
||||
step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: 'support@confdroid.com', sendToIndividuals: true])
|
||||
}
|
||||
}
|
||||
|
||||
options {
|
||||
gitLabConnection('sourcecode.confdroid.com')
|
||||
}
|
||||
|
||||
stages {
|
||||
|
||||
stage('pull master') {
|
||||
steps {
|
||||
sshagent(['edd05eb6-26b5-4c7b-a5cc-ea2ab899f4fa']) {
|
||||
sh '''git config user.name "Jenkins Server"
|
||||
git config user.email jenkins@confdroid.com
|
||||
git pull origin master
|
||||
git checkout -b jenkins '''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('puppet parser') {
|
||||
steps {
|
||||
sh '''for file in $(find . -iname \'*.pp\'); do
|
||||
/opt/puppetlabs/bin/puppet parser validate --color false --render-as s --modulepath=modules $file || exit 1;
|
||||
done;'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('check templates') {
|
||||
steps{
|
||||
sh '''for file in $(find . -iname \'*.erb\');
|
||||
do erb -P -x -T "-" $file | ruby -c || exit 1;
|
||||
done;'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('puppet-lint') {
|
||||
steps {
|
||||
sh '''find . -iname *.pp -exec /usr/local/rvm/gems/ruby-2.5.0/wrappers/puppet-lint \\
|
||||
--no-class_inherits_from_params_class-check \\
|
||||
--no-variable_scope-check \\
|
||||
--no-80chars-check \\
|
||||
--no-arrow_alignment-check \\
|
||||
--no-autoloader_layout-check \\
|
||||
--no-140chars-check \\
|
||||
--log-format "%{path}:%{line}:%{check}:%{KIND}:%{message}" {} \\;
|
||||
'''
|
||||
/* recordIssues aggregatingResults: true, tool: puppetLint() */
|
||||
}
|
||||
}
|
||||
|
||||
stage('markdown-lint') {
|
||||
steps {
|
||||
sh '''
|
||||
source /opt/rh/rh-ruby27/enable
|
||||
mdl README.md
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('spell check') {
|
||||
steps {
|
||||
sh '''
|
||||
mdspell -r -n -a "**/*.md"
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('SonarScan') {
|
||||
steps {
|
||||
sh '''
|
||||
/opt/sonar-scanner/bin/sonar-scanner \
|
||||
-Dsonar.projectKey=puppet_cd \
|
||||
-Dsonar.sources=. \
|
||||
-Dsonar.host.url=https://sonarqube.confdroid.com \
|
||||
-Dsonar.token=squ_af3fb66bbbcccf239ffe9393a5e70874f054be7a
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('create Puppet documention') {
|
||||
steps {
|
||||
sh '/opt/puppetlabs/bin/puppet strings'
|
||||
}
|
||||
}
|
||||
|
||||
stage('update repo') {
|
||||
steps {
|
||||
sshagent(['edd05eb6-26b5-4c7b-a5cc-ea2ab899f4fa']) {
|
||||
sh '''git config user.name "Jenkins Server"
|
||||
git config user.email jenkins@confdroid.com
|
||||
echo `git add -A && git commit -am "recommit for updates in build $BUILD_NUMBER"`
|
||||
git push origin HEAD:master'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user