Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
configuration
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
configuration
Commits
ba1bd1fc
Commit
ba1bd1fc
authored
Mar 18, 2016
by
Jacek Bzdak
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Provisioning Jenkins for DSL jobs PR fixes
parent
428cd59b
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
77 additions
and
81 deletions
+77
-81
playbooks/roles/jenkins_analytics/README.md
+4
-4
playbooks/roles/jenkins_analytics/defaults/main.yml
+4
-0
playbooks/roles/jenkins_analytics/tasks/add_credentials.yaml
+0
-31
playbooks/roles/jenkins_analytics/tasks/create_seed_job.yaml
+0
-31
playbooks/roles/jenkins_analytics/tasks/main.yml
+61
-7
playbooks/roles/jenkins_analytics/templates/seed_job_template.xml
+8
-8
No files found.
playbooks/roles/jenkins_analytics/README.md
View file @
ba1bd1fc
...
...
@@ -30,7 +30,7 @@ This file needs to contain, at least, the following variables
#### Jenkins user password
You'll need to override default
jenkins
user password, please do that
You'll need to override default
`jenkins`
user password, please do that
as this sets up the
**shell**
password for this user.
You'll need to set both a plain password and a hashed one.
...
...
@@ -113,13 +113,13 @@ Variables used by command waiting on Jenkins start-up after running
Jenkins auth realm encapsulates user management in Jenkins, that is:
*
What users
are
can log in
*
What users can log in
*
What credentials they use to log in
Realm type stored in
`jenkins_auth_realm.name`
variable.
In future we will try to enable other auth domains, while
preserving ability to run cli.
preserving
the
ability to run cli.
##### Unix Realm
...
...
@@ -149,7 +149,7 @@ Seed job is configured in `jenkins_seed_job` variable, which has the following
attributes:
*
`name`
: Name of the job in Jenkins.
*
`time_trigger`
: A Jenkins cron entry defining how often this job should r
a
n.
*
`time_trigger`
: A Jenkins cron entry defining how often this job should r
u
n.
*
`removed_job_action`
: what to do when a job created by a previous run of seed job
is missing from current run. This can be either
`DELETE`
or
`IGNORE`
.
*
`removed_view_action`
: what to do when a view created by a previous run of seed job
...
...
playbooks/roles/jenkins_analytics/defaults/main.yml
View file @
ba1bd1fc
...
...
@@ -16,6 +16,10 @@ JENKINS_ANALYTICS_CREDENTIALS:
JENKINS_ANALYTICS_CONCURRENT_JOBS_COUNT
:
2
jenkins_credentials_root
:
'
/tmp/credentials'
jenkins_credentials_file_dest
:
"
{{
jenkins_credentials_root
}}/credentials.json"
jenkins_credentials_script
:
"
{{
jenkins_credentials_root
}}/addCredentials.groovy"
jenkins_connection_retries
:
240
jenkins_connection_delay
:
1
jenkins_auth_realm
:
...
...
playbooks/roles/jenkins_analytics/tasks/add_credentials.yaml
deleted
100644 → 0
View file @
428cd59b
---
-
set_fact
:
jenkins_credentials_root
:
'
/tmp/credentials'
-
set_fact
:
jenkins_credentials_file_dest
:
"
{{
jenkins_credentials_root
}}/credentials.json"
jenkins_credentials_script
:
"
{{
jenkins_credentials_root
}}/addCredentials.groovy"
-
name
:
create credentials dir
file
:
name={{ jenkins_credentials_root }} state=directory
-
name
:
upload groovy script
template
:
src
:
addCredentials.groovy
dest
:
"
{{
jenkins_credentials_script
}}"
mode
:
"
600"
-
name
:
upload credentials file
template
:
src
:
credentials_file.json.j2
dest
:
"
{{
jenkins_credentials_file_dest
}}"
mode
:
"
600"
owner
:
"
{{
jenkins_user
}}"
-
name
:
add credentials
include
:
execute_jenkins_cli.yaml
vars
:
jenkins_command_string
:
"
groovy
{{
jenkins_credentials_script
}}"
-
name
:
clean up
file
:
name={{ jenkins_credentials_root }} state=absent
playbooks/roles/jenkins_analytics/tasks/create_seed_job.yaml
deleted
100644 → 0
View file @
428cd59b
---
-
name
:
upload job file
template
:
src=seed_job_template.xml dest=/tmp/{{ job_name }} mode="600"
-
name
:
check if job is present
include
:
execute_jenkins_cli.yaml
vars
:
jenkins_command_string
:
"
get-job
{{
job_name
}}"
jenkins_ignore_cli_errors
:
yes
-
set_fact
:
get_job_output
:
"
{{
jenkins_command_output
}}"
-
name
:
Create seed job if absent
include
:
execute_jenkins_cli.yaml
vars
:
jenkins_command_string
:
"
create-job
{{
job_name
}}"
jenkins_command_prefix
:
"
cat
/tmp/{{
job_name
}}
|
"
when
:
get_job_output.rc != 0
-
name
:
update seed job
include
:
execute_jenkins_cli.yaml
vars
:
jenkins_command_string
:
"
update-job
{{
job_name
}}"
jenkins_command_prefix
:
"
cat
/tmp/{{
job_name
}}
|
"
when
:
get_job_output.rc == 0
-
name
:
Build the seed job
include
:
execute_jenkins_cli.yaml
vars
:
jenkins_command_string
:
"
build
{{
job_name
}}
-s"
playbooks/roles/jenkins_analytics/tasks/main.yml
View file @
ba1bd1fc
...
...
@@ -20,20 +20,74 @@
owner
:
"
{{
jenkins_user
}}"
group
:
"
{{
jenkins_group
}}"
# Unconditionally restart
j
enkins, this has two side-effects:
# Unconditionally restart
J
enkins, this has two side-effects:
# 1. Jenkins uses new auth realm
# 2. We guarantee that jenkins is started (this is not certain
# as Jenkins is started by handlers from jenkins_master,
# these handlers are launched after this role.
# these handlers are launched after this role
)
.
-
name
:
restart Jenkins
service
:
name=jenkins state=restarted
-
include
:
add_credentials.yaml
# Upload Jenkins credentials
-
name
:
create seed job
include
:
create_seed_job.yaml
-
name
:
create credentials dir
file
:
name={{ jenkins_credentials_root }} state=directory
-
name
:
upload groovy script
template
:
src
:
addCredentials.groovy
dest
:
"
{{
jenkins_credentials_script
}}"
mode
:
"
600"
-
name
:
upload credentials file
template
:
src
:
credentials_file.json.j2
dest
:
"
{{
jenkins_credentials_file_dest
}}"
mode
:
"
600"
owner
:
"
{{
jenkins_user
}}"
-
name
:
add credentials
include
:
execute_jenkins_cli.yaml
vars
:
job_name
:
"
{{
jenkins_seed_job.name
}}"
job
:
"
{{
jenkins_seed_job
}}"
jenkins_command_string
:
"
groovy
{{
jenkins_credentials_script
}}"
-
name
:
clean up
file
:
name={{ jenkins_credentials_root }} state=absent
# Upload seed job
-
name
:
upload job file
template
:
src=seed_job_template.xml dest=/tmp/{{ jenkins_seed_job.name }} mode="600"
-
name
:
check if job is present
include
:
execute_jenkins_cli.yaml
vars
:
jenkins_command_string
:
"
get-job
{{
jenkins_seed_job.name
}}"
jenkins_ignore_cli_errors
:
yes
-
set_fact
:
get_job_output
:
"
{{
jenkins_command_output
}}"
# Upload seed job to Jenkins
-
name
:
Create seed job if absent
include
:
execute_jenkins_cli.yaml
vars
:
jenkins_command_string
:
"
create-job
{{
jenkins_seed_job.name
}}"
jenkins_command_prefix
:
"
cat
/tmp/{{
jenkins_seed_job.name
}}
|
"
when
:
get_job_output.rc != 0
-
name
:
update seed job
include
:
execute_jenkins_cli.yaml
vars
:
jenkins_command_string
:
"
update-job
{{
jenkins_seed_job.name
}}"
jenkins_command_prefix
:
"
cat
/tmp/{{
jenkins_seed_job.name
}}
|
"
when
:
get_job_output.rc == 0
# Build the seed job
-
name
:
Build the seed job
include
:
execute_jenkins_cli.yaml
vars
:
jenkins_command_string
:
"
build
{{
jenkins_seed_job.name
}}
-s"
playbooks/roles/jenkins_analytics/templates/seed_job_template.xml
View file @
ba1bd1fc
...
...
@@ -15,9 +15,9 @@
<configVersion>
2
</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<url>
{{ job.scm.url}}
</url>
{% if j
ob.scm.credential_id is defined and
job.scm.credential_id %}
<credentialsId>
{{ job.scm.credential_id }}
</credentialsId>
<url>
{{ j
enkins_seed_j
ob.scm.url}}
</url>
{% if j
enkins_seed_job.scm.credential_id is defined and jenkins_seed_
job.scm.credential_id %}
<credentialsId>
{{ j
enkins_seed_j
ob.scm.credential_id }}
</credentialsId>
{% endif %}
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
...
...
@@ -39,7 +39,7 @@
<blockBuildWhenUpstreamBuilding>
false
</blockBuildWhenUpstreamBuilding>
<triggers>
<hudson.triggers.TimerTrigger>
<spec>
{{ job.time_trigger }}
</spec>
<spec>
{{ j
enkins_seed_j
ob.time_trigger }}
</spec>
</hudson.triggers.TimerTrigger>
</triggers>
<concurrentBuild>
false
</concurrentBuild>
...
...
@@ -57,13 +57,13 @@
<useWorkspaceAsHome>
false
</useWorkspaceAsHome>
</hudson.plugins.gradle.Gradle>
<javaposse.jobdsl.plugin.ExecuteDslScripts
plugin=
"job-dsl@1.43"
>
<targets>
{{ job.scm.target_jobs }}
</targets>
<targets>
{{ j
enkins_seed_j
ob.scm.target_jobs }}
</targets>
<usingScriptText>
false
</usingScriptText>
<ignoreExisting>
false
</ignoreExisting>
<removedJobAction>
{{ job.removed_job_action }}
</removedJobAction>
<removedViewAction>
{{ job.removed_view_action }}
</removedViewAction>
<removedJobAction>
{{ j
enkins_seed_j
ob.removed_job_action }}
</removedJobAction>
<removedViewAction>
{{ j
enkins_seed_j
ob.removed_view_action }}
</removedViewAction>
<lookupStrategy>
JENKINS_ROOT
</lookupStrategy>
<additionalClasspath>
{{ job.scm.additional_classpath }}
</additionalClasspath>
<additionalClasspath>
{{ j
enkins_seed_j
ob.scm.additional_classpath }}
</additionalClasspath>
</javaposse.jobdsl.plugin.ExecuteDslScripts>
</builders>
<publishers/>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment