commit message from python script
This commit is contained in:
67
jenkins/jenkins_modify_jobs/main.py
Normal file
67
jenkins/jenkins_modify_jobs/main.py
Normal file
@@ -0,0 +1,67 @@
|
||||
#! /usr/bin/env python3.10
|
||||
|
||||
import jenkins, os
|
||||
|
||||
import xml.etree.ElementTree as ET
|
||||
#connect
|
||||
server = jenkins.Jenkins('https://man-dan-03:9443', username='JonnyBravo', password='113c3449636622439627ab1d51454fc07c')
|
||||
|
||||
|
||||
def show_all_files_directory(dir_path = str, search_endung = False, search_string = False):
|
||||
li_all = []
|
||||
for root_folder, dirs, files in os.walk(dir_path, topdown=False):
|
||||
for name in files:
|
||||
FullPATH = str(os.path.join(root_folder, name))
|
||||
if not search_endung is False:
|
||||
if FullPATH.endswith(search_endung):
|
||||
li_all.append(FullPATH)
|
||||
elif not search_string is False:
|
||||
if not FullPATH.find(search_string) == -1:
|
||||
li_all.append(FullPATH)
|
||||
else:
|
||||
li_all.append(FullPATH)
|
||||
return li_all
|
||||
|
||||
|
||||
def show_all_directory(dir_path = str, search_endung = False, search_string = False):
|
||||
li_all = []
|
||||
for root_folder, dirs, files in os.walk(dir_path, topdown=False):
|
||||
for name in dirs:
|
||||
FullPATH = str(os.path.join(root_folder, name))
|
||||
#print(name)
|
||||
if not name.find(search_string) == -1:
|
||||
li_all.append(FullPATH)
|
||||
return li_all
|
||||
|
||||
|
||||
def modify_jenkins_configfile(config_file_list = list):
|
||||
for config_file in config_file_list:
|
||||
config_file_FullPath = config_file
|
||||
print("open..." + config_file_FullPath)
|
||||
with open(config_file_FullPath , "r") as read_config:
|
||||
for line in read_config:
|
||||
print(line.rstrip("\n"))
|
||||
print("#" * len(config_file_FullPath))
|
||||
|
||||
def added_config_to_jenkins_xml(config_xml = str):
|
||||
xml_root = ET.parse(config_xml).getroot()
|
||||
xml_str = ET.tostring(xml_root, encoding='utf8', method='xml').decode()
|
||||
|
||||
for strategy in xml_root.findall('sources/data/jenkins.branch.BranchSource'):
|
||||
value = strategy.get('id')
|
||||
print(strategy.get('id'))
|
||||
print(value)
|
||||
|
||||
|
||||
|
||||
def main():
|
||||
#test = show_all_files_directory(dir_path=os.sep + "home" + os.sep + "jonnybravo" + os.sep + ".jenkins" + os.sep + "data" + os.sep + "jobs", search_string="config.xml")
|
||||
find_folder = show_all_directory(dir_path=os.sep + "home" + os.sep + "jonnybravo" + os.sep + ".jenkins" + os.sep + "data" + os.sep + "jobs", search_string="mulit")
|
||||
for config_file in find_folder:
|
||||
file = config_file + os.sep + "config.xml"
|
||||
print(file)
|
||||
added_config_to_jenkins_xml(file)
|
||||
#modify_jenkins_configfile(config_file_list=test)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
33
jenkins/jenkins_modify_jobs/modify_jenkins_job.py
Normal file
33
jenkins/jenkins_modify_jobs/modify_jenkins_job.py
Normal file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env python3.10
|
||||
|
||||
import jenkins, os
|
||||
|
||||
def modify_jenkins_job(server_url = 'https://man-dan-03:9443', jenkins_username = 'jonnybravo', jenkins_user_token = '113c3449636622439627ab1d51454fc07c', jobs = list, old_config_part = str, new_config_part = str ):
|
||||
server = jenkins.Jenkins(server_url, username=jenkins_username, password=jenkins_user_token)
|
||||
for job in jobs:
|
||||
try:
|
||||
job_config = server.get_job_config(job)
|
||||
new = job_config.replace(old_config_part, new_config_part)
|
||||
server.reconfig_job(job, new)
|
||||
except:
|
||||
error_output = "Job " + job + " existiet nicht"
|
||||
raise Exception(error_output)
|
||||
|
||||
if __name__ == '__main__':
|
||||
#os.putenv("PYTHONHTTPSVERIFY", 0)
|
||||
os.environ["PYTHONHTTPSVERIFY"] = "0"
|
||||
|
||||
old_config = """ <strategy class="jenkins.branch.DefaultBranchPropertyStrategy">
|
||||
<properties class="empty-list"/>
|
||||
</strategy>"""
|
||||
new_config = """ <strategy class="jenkins.branch.DefaultBranchPropertyStrategy">
|
||||
<properties class="java.util.Arrays$ArrayList">
|
||||
<a class="jenkins.branch.BranchProperty-array">
|
||||
<jenkins.branch.NoTriggerBranchProperty>
|
||||
<triggeredBranchesRegex>(?!support*).*</triggeredBranchesRegex>
|
||||
<strategy>NONE</strategy>
|
||||
</jenkins.branch.NoTriggerBranchProperty>
|
||||
</a>
|
||||
</properties>
|
||||
</strategy>"""
|
||||
modify_jenkins_job(old_config_part=old_config, new_config_part=new_config, jobs=['multi_branch_test', 'multi_branch_test_2'])
|
||||
@@ -1,43 +0,0 @@
|
||||
<?xml version='1.1' encoding='UTF-8'?>
|
||||
<project>
|
||||
<description></description>
|
||||
<keepDependencies>false</keepDependencies>
|
||||
<properties/>
|
||||
<scm class="hudson.plugins.git.GitSCM" plugin="git@5.0.0">
|
||||
<configVersion>2</configVersion>
|
||||
<userRemoteConfigs>
|
||||
<hudson.plugins.git.UserRemoteConfig>
|
||||
<url>https://gitea.schlaubistechtalk.de/JonnyBravo/test_play.git</url>
|
||||
<credentialsId>e4acf1ed-a858-429d-b5a6-c149431563db</credentialsId>
|
||||
</hudson.plugins.git.UserRemoteConfig>
|
||||
</userRemoteConfigs>
|
||||
<branches>
|
||||
<hudson.plugins.git.BranchSpec>
|
||||
<name>*/master</name>
|
||||
</hudson.plugins.git.BranchSpec>
|
||||
</branches>
|
||||
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
|
||||
<submoduleCfg class="empty-list"/>
|
||||
<extensions/>
|
||||
</scm>
|
||||
<canRoam>true</canRoam>
|
||||
<disabled>false</disabled>
|
||||
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
|
||||
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
|
||||
<triggers>
|
||||
<hudson.triggers.SCMTrigger>
|
||||
<spec>H/2 * * * *</spec>
|
||||
<ignorePostCommitHooks>false</ignorePostCommitHooks>
|
||||
</hudson.triggers.SCMTrigger>
|
||||
</triggers>
|
||||
<concurrentBuild>false</concurrentBuild>
|
||||
<builders>
|
||||
<hudson.tasks.Shell>
|
||||
<command>./test_play.yml</command>
|
||||
<configuredLocalRules/>
|
||||
</hudson.tasks.Shell>
|
||||
</builders>
|
||||
<publishers/>
|
||||
<buildWrappers/>
|
||||
</project>
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
<?xml version='1.1' encoding='UTF-8'?>
|
||||
<project>
|
||||
<description></description>
|
||||
<keepDependencies>false</keepDependencies>
|
||||
<properties/>
|
||||
<scm class="hudson.plugins.git.GitSCM" plugin="git@5.0.0">
|
||||
<configVersion>2</configVersion>
|
||||
<userRemoteConfigs>
|
||||
<hudson.plugins.git.UserRemoteConfig>
|
||||
<url>https://gitea.schlaubistechtalk.de/JonnyBravo/test_play.git</url>
|
||||
<credentialsId>e4acf1ed-a858-429d-b5a6-c149431563db</credentialsId>
|
||||
</hudson.plugins.git.UserRemoteConfig>
|
||||
</userRemoteConfigs>
|
||||
<branches>
|
||||
<hudson.plugins.git.BranchSpec>
|
||||
<name>*/master</name>
|
||||
</hudson.plugins.git.BranchSpec>
|
||||
</branches>
|
||||
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
|
||||
<submoduleCfg class="empty-list"/>
|
||||
<extensions/>
|
||||
</scm>
|
||||
<canRoam>true</canRoam>
|
||||
<disabled>false</disabled>
|
||||
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
|
||||
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
|
||||
<triggers>
|
||||
<hudson.triggers.SCMTrigger>
|
||||
<spec>H/2 * * * *</spec>
|
||||
<ignorePostCommitHooks>false</ignorePostCommitHooks>
|
||||
</hudson.triggers.SCMTrigger>
|
||||
</triggers>
|
||||
<concurrentBuild>false</concurrentBuild>
|
||||
<builders>
|
||||
<hudson.tasks.Shell>
|
||||
<command>./test_play.yml</command>
|
||||
<configuredLocalRules/>
|
||||
</hudson.tasks.Shell>
|
||||
</builders>
|
||||
<publishers/>
|
||||
<buildWrappers/>
|
||||
</project>
|
||||
|
||||
Reference in New Issue
Block a user