Documentation by YARD 0.9.36
-Alphabetic Index
- -Puppet Class Listing A-Z
- - -
-
-
-
|
-
File Listing
--
-
-
-
- README - - -
diff --git a/.gitignore b/.gitignore index a356406..ae5ef54 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ Gemfile.lock FileList .scannerwork +.vscode +.puppet-lint.rc \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 4a879a7..fe53574 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,10 @@ { "cSpell.words": [ + "descr", "fontconfig", + "gpgcheck", "NOPASSWD", - "requiretty" + "requiretty", + "yumrepo" ] } \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile index 7a37490..9f2822d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -28,11 +28,17 @@ pipeline { sh ''' git config user.name "Jenkins Server" git config user.email jenkins@confdroid.com - # Ensure we're on the development branch (triggered by push) - git checkout development - # Create jenkins branch from development - git checkout -b jenkins-build-$BUILD_NUMBER - # Optionally merge master into jenkins to ensure compatibility + git fetch origin + source_branch="${gitlabSourceBranch:-${BRANCH_NAME:-${GIT_LOCAL_BRANCH:-$GIT_BRANCH}}}" + source_branch="${source_branch#origin/}" + source_branch="${source_branch#refs/heads/}" + if [ -z "$source_branch" ]; then + source_branch="development" + fi + echo "Using source branch: $source_branch" + # Create an isolated build branch from the triggering branch revision. + git checkout -B jenkins-build-$BUILD_NUMBER "origin/$source_branch" + # Merge the current master into the build branch before validation. git merge origin/master --no-ff || { echo "Merge conflict detected"; exit 1; } ''' } @@ -69,7 +75,7 @@ pipeline { withCredentials([string(credentialsId: 'sonar-token', variable: 'SONAR_TOKEN')]) { sh ''' /opt/sonar-scanner/bin/sonar-scanner \ - -Dsonar.projectKey=jenkins_cd \ + -Dsonar.projectKey=confdroid_jenkins \ -Dsonar.sources=. \ -Dsonar.host.url=https://sonarqube.confdroid.com \ -Dsonar.token=$SONAR_TOKEN @@ -88,18 +94,37 @@ pipeline { steps { sshagent(['edd05eb6-26b5-4c7b-a5cc-ea2ab899f4fa']) { sh ''' - git config user.name "Jenkins Server" - git config user.email jenkins@confdroid.com - git add -A && git commit -am "Recommit for updates in build $BUILD_NUMBER" || echo "No changes to commit" - git push -o merge_request.create \ - -o merge_request.target=master \ - -o merge_request.title="Auto-merge for build $BUILD_NUMBER" \ - -o merge_request.description="Automated changes from Jenkins build $BUILD_NUMBER" \ - -o merge_request.merge_when_pipeline_succeeds=true \ - origin jenkins-build-$BUILD_NUMBER + git config user.name "Jenkins Server" + git config user.email jenkins@confdroid.com + git add -A && git commit -am "Recommit for updates in build $BUILD_NUMBER" || echo "No changes to commit" + git fetch origin + git checkout -B master origin/master + git merge --no-ff jenkins-build-$BUILD_NUMBER -m "Merge build $BUILD_NUMBER into master" + git push origin master ''' } } } + stage('Mirror to Gitea') { + steps { + withCredentials([usernamePassword( + credentialsId: 'Jenkins-gitea', + usernameVariable: 'GITEA_USER', + passwordVariable: 'GITEA_TOKEN')]) { + script { + sh ''' + git fetch origin + git checkout master + git reset --hard origin/master + git remote get-url master >/dev/null 2>&1 \ + && git remote set-url master https://sourcecode.confdroid.com/confdroid/confdroid_jenkins.git \ + || git remote add master https://sourcecode.confdroid.com/confdroid/confdroid_jenkins.git + git -c credential.helper="!f() { echo username=${GITEA_USER}; echo password=${GITEA_TOKEN}; }; f" \ + push --force master refs/heads/master:refs/heads/master + ''' + } + } + } + } } } \ No newline at end of file diff --git a/README.md b/README.md index af266a5..f94db55 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Readme -[](https://jenkins.confdroid.com/job/jenkins_cd/)| +[](https://jenkins.confdroid.com/job/confdroid_jenkins/)| [[_TOC_]] @@ -36,7 +36,7 @@ via site.pp or nodes.pp ```bash node 'example.example.net' { - include jenkins_cd + include confdroid_jenkins } ``` diff --git a/doc/_index.html b/doc/_index.html deleted file mode 100644 index 53a1f38..0000000 --- a/doc/_index.html +++ /dev/null @@ -1,153 +0,0 @@ - - -
- - -
-
-
-
|
-
| t |
- - - -6 -7 -8- |
-
- # File 'manifests/init.pp', line 6
-
-class jenkins_cd {
- include jenkins_cd::params
-}
- |
-
jenkins_cd::firewall::iptables.pp Module name: jenkins_cd Author: Arne Teuke (arne_teuke@confdroid.com)
- -
- - - -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17- |
-
- # File 'manifests/firewall/iptables.pp', line 6
-
-class jenkins_cd::firewall::iptables (
-
-) inherits jenkins_cd::params {
- if ($fqdn == $js_host_fqdn) and ($js_enable_fw == true) {
- firewall { "${js_fw_rule}${js_jenkins_port} tcp port ${js_jenkins_port}":
- proto => 'tcp',
- source => $js_source_net,
- dport => $js_jenkins_port,
- jump => 'accept',
- }
- }
-}
- |
-
jenkins_cd::main::config.pp Module name: jenkins_cd Author: Arne Teuke (arne_teuke@confdroid.com)
- -
- - - -6 -7 -8 -9 -10 -11 -12- |
-
- # File 'manifests/main/config.pp', line 6
-
-class jenkins_cd::main::config (
-
-) inherits jenkins_cd::params {
- if $fqdn == $js_host_fqdn {
- include jenkins_cd::main::service
- }
-}
- |
-
jenkins_cd::main::dirs.pp Module name: jenkins_cd Author: Arne Teuke (arne_teuke@confdroid.com)
- -
- - - -6 -7 -8 -9 -10 -11 -12- |
-
- # File 'manifests/main/dirs.pp', line 6
-
-class jenkins_cd::main::dirs (
-
-) inherits jenkins_cd::params {
- if $fqdn == $js_host_fqdn {
- require jenkins_cd::main::install
- }
-}
- |
-
jenkins_cd::main::files.pp Module name: jenkins_cd Author: Arne Teuke (arne_teuke@confdroid.com)
- -
- - - -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30- |
-
- # File 'manifests/main/files.pp', line 6
-
-class jenkins_cd::main::files (
-
-) inherits jenkins_cd::params {
- if $fqdn == $js_host_fqdn {
- require jenkins_cd::main::dirs
- if $js_use_sudo == true {
- file { $js_sudoers_file:
- ensure => file,
- owner => 'root',
- group => 'root',
- mode => '0440',
- selrange => s0,
- selrole => object_r,
- seltype => etc_t,
- seluser => system_u,
- content => template($js_sudoers_erb),
- }
- }
- if $js_use_sudo != true {
- file { $js_sudoers_file:
- ensure => absent,
- }
- }
- }
-}
- |
-
jenkins_cd::main::install.pp Module name: jenkins_cd Author: Arne Teuke (arne_teuke@confdroid.com)
- -
- - - -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17- |
-
- # File 'manifests/main/install.pp', line 6
-
-class jenkins_cd::main::install (
-
-) inherits jenkins_cd::params {
- if $fqdn == $js_host_fqdn {
- require java_cd
- require jenkins_cd::main::yumrepo
-
- package { $reqpackages:
- ensure => $pkg_ensure,
- }
- }
-}
- |
-
jenkins_cd::main::service.pp Module name: jenkins_cd Author: Arne Teuke (arne_teuke@confdroid.com)
- -
- - - -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20- |
-
- # File 'manifests/main/service.pp', line 6
-
-class jenkins_cd::main::service (
-
-) inherits jenkins_cd::params {
- if $fqdn == $js_host_fqdn {
- require jenkins_cd::main::files
- require jenkins_cd::firewall::iptables
-
- service { $js_service:
- ensure => running,
- hasstatus => true,
- hasrestart => true,
- enable => true,
- }
- }
-}
- |
-
jenkins_cd::main::yumrepo.pp Module name: jenkins_cd Author: Arne Teuke (arne_teuke@confdroid.com)
- -
- - - -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28- |
-
- # File 'manifests/main/yumrepo.pp', line 6
-
-class jenkins_cd::main::yumrepo (
-
-) inherits jenkins_cd::params {
- if $fqdn == $js_host_fqdn {
- yumrepo { 'jenkins':
- descr => 'Jenkins-stable',
- baseurl => $js_base_url,
- gpgcheck => '1',
- enabled => '1';
- }
-
-# import rpm key
-
- exec { $js_key_url:
- command => "rpm --import ${js_key_url}",
- path => '/bin:/usr/bin:/sbin:/usr/sbin',
- cwd => '/tmp',
- user => 'root',
- unless => "rpm -q ${js_key_code} 2>/dev/null",
- require => Yumrepo['jenkins'],
- }
- }
-}
- |
-
jenkins_cd::params.pp Module name: jenkins_cd Author: Arne Teuke (arne_teuke@confdroid.com)
- -
- - - -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51- |
-
- # File 'manifests/params.pp', line 14
-
-class jenkins_cd::params (
-
- Array $reqpackages = ['jenkins','fontconfig'],
- String $pkg_ensure = 'latest',
-
- # server fqdn
- String $js_host_fqdn = 'jenkins.example.net',
-
- # firewall
- Boolean $js_enable_fw = true,
- String $js_fw_rule = '50',
- String $js_jenkins_port = '8080',
- String $js_source_net = '0.0.0.0/0',
-
- # user
- Boolean $js_use_sudo = false,
-
-) {
- # facts
- $fqdn = $facts['networking']['fqdn']
- $domain = $facts['networking']['domain']
- $os_name = $facts['os']['name']
- $os_release = $facts['os']['release']['major']
-
- # yum repo
- $js_base_url = 'https://pkg.jenkins.io/redhat-stable/'
- $js_key_url = "${js_base_url}/jenkins.io-2023.key"
- $js_key_code = 'gpg-pubkey-ef5975ca-6421ce2b'
-
- $js_sudoers_file = '/etc/sudoers.d/jenkins_sudo'
- $js_sudoers_erb = 'jenkins_cd/sudoers.erb'
-
- # Service
- $js_service = 'jenkins'
-
- # includes must be last
- include jenkins_cd::main::config
-}
- |
-