Compare commits

...

28 Commits

Author SHA1 Message Date
Jenkins Server
b5c0b3672c Remove Jenkinsfile for Gitea mirror 2026-04-22 15:56:52 +02:00
Jenkins Server
07fa818fea Merge build 18 into master 2026-04-22 15:56:49 +02:00
Jenkins Server
0dd226590a Recommit for updates in build 18 2026-04-22 15:56:48 +02:00
Jenkins Server
b0ba8611cc Merge remote-tracking branch 'origin/master' into jenkins-build-18 2026-04-22 15:55:53 +02:00
713be3a9ef OP#590 fix selinux 2026-04-22 15:55:34 +02:00
Jenkins Server
d9b2fb9ce4 Merge build 17 into master 2026-04-22 15:47:39 +02:00
Jenkins Server
29d1c32e8d Recommit for updates in build 17 2026-04-22 15:47:38 +02:00
Jenkins Server
7695df44d3 Merge remote-tracking branch 'origin/master' into jenkins-build-17 2026-04-22 15:46:43 +02:00
1e2da5edf4 OP#590 fix path 2026-04-22 15:46:21 +02:00
Jenkins Server
08461d4f86 Merge build 16 into master 2026-04-22 15:32:17 +02:00
Jenkins Server
d7ed416df3 Recommit for updates in build 16 2026-04-22 15:32:16 +02:00
Jenkins Server
99aad766f9 Merge remote-tracking branch 'origin/master' into jenkins-build-16 2026-04-22 15:31:20 +02:00
d13b8c6a54 OP#590 add main dirs 2026-04-22 15:30:53 +02:00
Jenkins Server
786dacfaad Merge build 15 into master 2026-04-18 17:48:35 +02:00
Jenkins Server
447a52c03e Recommit for updates in build 15 2026-04-18 17:48:34 +02:00
Jenkins Server
256db2dfc4 Merge remote-tracking branch 'origin/master' into jenkins-build-15 2026-04-18 17:47:45 +02:00
2a9d490fcb OP#581 edit Readme 2026-04-18 17:47:26 +02:00
Jenkins Server
fa4e3b625a Merge build 14 into master 2026-04-16 17:53:29 +02:00
Jenkins Server
226a67e37b Merge remote-tracking branch 'origin/master' into jenkins-build-14 2026-04-16 17:52:34 +02:00
01f02f1cbd OP#581 add tagging sync 2026-04-16 17:52:17 +02:00
190c397809 OP#581 add tagging sync 2026-04-16 17:47:59 +02:00
Jenkins Server
f860dfa44e Merge build 12 into master 2026-04-16 17:11:05 +02:00
Jenkins Server
15a64cccd5 Recommit for updates in build 12 2026-04-16 17:11:03 +02:00
Jenkins Server
66bc7c25c5 Merge remote-tracking branch 'origin/master' into jenkins-build-12 2026-04-16 17:10:13 +02:00
1707d16d5e OP#581 add gpgkey 2026-04-16 17:09:41 +02:00
Jenkins Server
5c6dfa2b5b Merge build 11 into master 2026-04-16 16:47:21 +02:00
Jenkins Server
831e66bd54 Recommit for updates in build 11 2026-04-16 16:47:19 +02:00
f6b2a99afa OP#581 remove docs from dev branch 2026-04-16 16:46:20 +02:00
10 changed files with 187 additions and 144 deletions

138
Jenkinsfile vendored
View File

@@ -1,138 +0,0 @@
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('gitlab.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 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; }
'''
}
}
}
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 '''/usr/local/bin/puppet-lint . \\
--no-variable_scope-check \\
|| { echo "Puppet lint failed"; exit 1; }
'''
}
}
stage('SonarScan') {
steps {
withCredentials([string(credentialsId: 'sonar-token', variable: 'SONAR_TOKEN')]) {
sh '''
/opt/sonar-scanner/bin/sonar-scanner \
-Dsonar.projectKey=confdroid_jenkins \
-Dsonar.sources=. \
-Dsonar.host.url=https://sonarqube.confdroid.com \
-Dsonar.token=$SONAR_TOKEN
'''
}
}
}
stage('create Puppet documentation') {
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
git rm -r --cached .vscode || echo "No .vscode to remove from git"
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 -B gitea-mirror-$BUILD_NUMBER origin/master
git rm -f Jenkinsfile
git commit -m "Remove Jenkinsfile for Gitea mirror" || echo "No changes to commit"
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 HEAD:refs/heads/master
git ls-remote --heads master | awk '{print $2}' | sed 's#refs/heads/##' | while read branch; do
if [ -n "$branch" ] && [ "$branch" != "master" ]; then
git -c credential.helper="!f() { echo username=${GITEA_USER}; echo password=${GITEA_TOKEN}; }; f" \
push master --delete "$branch"
fi
done
'''
}
}
}
}
}
}

View File

@@ -21,7 +21,11 @@
## Synopsis ## Synopsis
Puppet 6 repo for managing Jenkins. Internal only due to access details for gitlab Jenkins is an open-source automation server written in Java that automates the software development process, including building, testing, and deploying code.
`confdroid_jenkins` is a Puppet module for installing and managing Jenkins.
> This is a Work in Progress, currently features are added.
## WARNING ## WARNING

View File

@@ -96,7 +96,13 @@
<h2 id="label-Synopsis">Synopsis</h2> <h2 id="label-Synopsis">Synopsis</h2>
<p>Puppet 6 repo for managing Jenkins. Internal only due to access details for gitlab</p> <p>Jenkins is an open-source automation server written in Java that automates the software development process, including building, testing, and deploying code.</p>
<p><code>confdroid_jenkins</code> is a Puppet module for installing and managing Jenkins.</p>
<blockquote>
<p>This is a Work in Progress, currently features are added.</p>
</blockquote>
<h2 id="label-WARNING">WARNING</h2> <h2 id="label-WARNING">WARNING</h2>

View File

@@ -96,7 +96,13 @@
<h2 id="label-Synopsis">Synopsis</h2> <h2 id="label-Synopsis">Synopsis</h2>
<p>Puppet 6 repo for managing Jenkins. Internal only due to access details for gitlab</p> <p>Jenkins is an open-source automation server written in Java that automates the software development process, including building, testing, and deploying code.</p>
<p><code>confdroid_jenkins</code> is a Puppet module for installing and managing Jenkins.</p>
<blockquote>
<p>This is a Work in Progress, currently features are added.</p>
</blockquote>
<h2 id="label-WARNING">WARNING</h2> <h2 id="label-WARNING">WARNING</h2>

View File

@@ -107,7 +107,55 @@
9 9
10 10
11 11
12</pre> 12
13
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
52
53
54
55
56
57
58
59
60</pre>
</td> </td>
<td> <td>
<pre class="code"><span class="info file"># File 'manifests/main/dirs.pp', line 6</span> <pre class="code"><span class="info file"># File 'manifests/main/dirs.pp', line 6</span>
@@ -117,6 +165,54 @@ class confdroid_jenkins::main::dirs (
) inherits confdroid_jenkins::params { ) inherits confdroid_jenkins::params {
if $fqdn == $js_host_fqdn { if $fqdn == $js_host_fqdn {
require confdroid_jenkins::main::install require confdroid_jenkins::main::install
# jenkins home
file { $js_jenkins_home:
ensure =&gt; &#39;directory&#39;,
owner =&gt; &#39;jenkins&#39;,
group =&gt; &#39;jenkins&#39;,
mode =&gt; &#39;0755&#39;,
selrange =&gt; s0,
selrole =&gt; object_r,
seltype =&gt; var_lib_t,
seluser =&gt; unconfined_u,
}
# jenkins logs
file { $js_jenkins_logs:
ensure =&gt; &#39;directory&#39;,
owner =&gt; &#39;jenkins&#39;,
group =&gt; &#39;jenkins&#39;,
mode =&gt; &#39;0755&#39;,
selrange =&gt; s0,
selrole =&gt; object_r,
seltype =&gt; var_lib_t,
seluser =&gt; system_u,
}
# jenkins cache
file { $js_jenkins_cache:
ensure =&gt; &#39;directory&#39;,
owner =&gt; &#39;jenkins&#39;,
group =&gt; &#39;jenkins&#39;,
mode =&gt; &#39;0750&#39;,
selrange =&gt; s0,
selrole =&gt; object_r,
seltype =&gt; var_t,
seluser =&gt; unconfined_u,
}
# jenkins run
file { $js_jenkins_run:
ensure =&gt; &#39;directory&#39;,
owner =&gt; &#39;jenkins&#39;,
group =&gt; &#39;jenkins&#39;,
mode =&gt; &#39;0770&#39;,
selrange =&gt; s0,
selrole =&gt; object_r,
seltype =&gt; var_run_t,
seluser =&gt; system_u,
}
} }
}</pre> }</pre>
</td> </td>

View File

@@ -124,7 +124,8 @@
26 26
27 27
28 28
29</pre> 29
30</pre>
</td> </td>
<td> <td>
<pre class="code"><span class="info file"># File 'manifests/main/yumrepo.pp', line 6</span> <pre class="code"><span class="info file"># File 'manifests/main/yumrepo.pp', line 6</span>
@@ -137,6 +138,7 @@ class confdroid_jenkins::main::yumrepo (
descr =&gt; &#39;Jenkins-stable&#39;, descr =&gt; &#39;Jenkins-stable&#39;,
baseurl =&gt; $js_base_url, baseurl =&gt; $js_base_url,
gpgcheck =&gt; $js_gpg_check, gpgcheck =&gt; $js_gpg_check,
gpgkey =&gt; &quot;${js_base_url}/${js_key}&quot;,
repo_gpgcheck =&gt; $js_gpg_repo_check, repo_gpgcheck =&gt; $js_gpg_repo_check,
enabled =&gt; $js_repo_enabled, enabled =&gt; $js_repo_enabled,
} }

View File

@@ -411,7 +411,13 @@
55 55
56 56
57 57
58</pre> 58
59
60
61
62
63
64</pre>
</td> </td>
<td> <td>
<pre class="code"><span class="info file"># File 'manifests/params.pp', line 20</span> <pre class="code"><span class="info file"># File 'manifests/params.pp', line 20</span>
@@ -452,6 +458,12 @@ class confdroid_jenkins::params (
# Service # Service
$js_service = &#39;jenkins&#39; $js_service = &#39;jenkins&#39;
# directories
$js_jenkins_home = &#39;/var/lib/jenkins&#39;
$js_jenkins_logs = &quot;${js_jenkins_home}/logs&quot;
$js_jenkins_cache = &#39;/var/cache/jenkins&#39;
$js_jenkins_run = &#39;/run/jenkins&#39;
# includes must be last # includes must be last
include confdroid_jenkins::main::config include confdroid_jenkins::main::config
}</pre> }</pre>

View File

@@ -8,5 +8,53 @@ class confdroid_jenkins::main::dirs (
) inherits confdroid_jenkins::params { ) inherits confdroid_jenkins::params {
if $fqdn == $js_host_fqdn { if $fqdn == $js_host_fqdn {
require confdroid_jenkins::main::install require confdroid_jenkins::main::install
# jenkins home
file { $js_jenkins_home:
ensure => 'directory',
owner => 'jenkins',
group => 'jenkins',
mode => '0755',
selrange => s0,
selrole => object_r,
seltype => var_lib_t,
seluser => unconfined_u,
}
# jenkins logs
file { $js_jenkins_logs:
ensure => 'directory',
owner => 'jenkins',
group => 'jenkins',
mode => '0755',
selrange => s0,
selrole => object_r,
seltype => var_lib_t,
seluser => system_u,
}
# jenkins cache
file { $js_jenkins_cache:
ensure => 'directory',
owner => 'jenkins',
group => 'jenkins',
mode => '0750',
selrange => s0,
selrole => object_r,
seltype => var_t,
seluser => unconfined_u,
}
# jenkins run
file { $js_jenkins_run:
ensure => 'directory',
owner => 'jenkins',
group => 'jenkins',
mode => '0770',
selrange => s0,
selrole => object_r,
seltype => var_run_t,
seluser => system_u,
}
} }
} }

View File

@@ -11,6 +11,7 @@ class confdroid_jenkins::main::yumrepo (
descr => 'Jenkins-stable', descr => 'Jenkins-stable',
baseurl => $js_base_url, baseurl => $js_base_url,
gpgcheck => $js_gpg_check, gpgcheck => $js_gpg_check,
gpgkey => "${js_base_url}/${js_key}",
repo_gpgcheck => $js_gpg_repo_check, repo_gpgcheck => $js_gpg_repo_check,
enabled => $js_repo_enabled, enabled => $js_repo_enabled,
} }

View File

@@ -53,6 +53,12 @@ class confdroid_jenkins::params (
# Service # Service
$js_service = 'jenkins' $js_service = 'jenkins'
# directories
$js_jenkins_home = '/var/lib/jenkins'
$js_jenkins_logs = "${js_jenkins_home}/logs"
$js_jenkins_cache = '/var/cache/jenkins'
$js_jenkins_run = '/run/jenkins'
# includes must be last # includes must be last
include confdroid_jenkins::main::config include confdroid_jenkins::main::config
} }