怠け者が好きだった
働かないのが一番です
最近、Jenkinsモジュールの統合を研究しています
私が彼らのためにそれを使うことができるようにそれをばかげたインターフェースにしてください
Pythonをスプレーしたくないので、案内してください
JenkinsPythonモジュールモジュールのインストール
pip:
pip install python-jenkinseasy_install:
easy_install python-jenkins
使用する:
classjenkins_tools():
def __init__(self):
cf =get_conf()
self.username = cf.get('jenkins','username')
self.password = cf.get('jenkins','password')
self.php_jenkins =''' #ベン自身のジェンキンスconfファイル
< project #ここで、jenkinsのプロジェクトフォルダにある構成ファイルをコピーできます。
< actions/ #ソースコードが追加に役立ったxmlヘッダーを追加しないことを忘れないでください。自分で追加することはできません。
< description </description #プロジェクトの要件が異なり、構成ファイルも異なります。私のものをコピーしないでください。
< keepDependencies false</keepDependencies
< properties
< hudson.model.ParametersDefinitionProperty
< parameterDefinitions
< hudson.model.StringParameterDefinition
< name Branch</name
< description </description
< defaultValue %s</defaultValue
< /hudson.model.StringParameterDefinition
< /parameterDefinitions
< /hudson.model.ParametersDefinitionProperty
< /properties
< scm class="hudson.scm.NullSCM"/<canRoam true</canRoam
< disabled false</disabled
< blockBuildWhenDownstreamBuilding false</blockBuildWhenDownstreamBuilding
< blockBuildWhenUpstreamBuilding false</blockBuildWhenUpstreamBuilding
< triggers/<concurrentBuild false</concurrentBuild
< builders
< hudson.tasks.Shell
< command xxxxxxx</command
< /hudson.tasks.Shell
< /builders
< publishers/<buildWrappers/</project
'''
self.java_newjenkins =''' #このディックの別のジェンキンスconfファイル
< project
< actions/<description </description
< keepDependencies false</keepDependencies
< properties
< hudson.model.ParametersDefinitionProperty
< parameterDefinitions
< hudson.model.StringParameterDefinition
< name Branch</name
< description </description
< defaultValue %s</defaultValue
< /hudson.model.StringParameterDefinition
< /parameterDefinitions
< /hudson.model.ParametersDefinitionProperty
< /properties
< scm class="hudson.scm.NullSCM"/<canRoam true</canRoam
< disabled false</disabled
< blockBuildWhenDownstreamBuilding false</blockBuildWhenDownstreamBuilding
< blockBuildWhenUpstreamBuilding false</blockBuildWhenUpstreamBuilding
< triggers/<concurrentBuild false</concurrentBuild
< builders
< hudson.tasks.Shell
< command xxxx</command
< /hudson.tasks.Shell
< /builders
< publishers/<buildWrappers/</project
'''
def __conn_jenkins_server(self, url):try:
# jenkins操作インスタンスを取得します
server = jenkins.Jenkins(url, username=self.username, password=self.password)return server
except Exception:
logging.warning('login jenkins failed!')return None
def create_project(self, host_ip, project_name, git_path, git_branch, url, environment):
server = self.__conn_jenkins_server(url)if server:
server.create_job(project_name, self.php_jenkins) #パラメータ1はプロジェクト名、パラメータ2はxmlドキュメントです
return True
else:return None
def project_built(self, url, project_name, git_branch): #この関数は、プロジェクトをビルドするために使用されます
server = self.__conn_jenkins_server(url)
server.build_job(project_name,{'Branch': git_branch})
def check_project_exist(self, project_name, url): #この機能は、プロジェクトがすでに存在するかどうかを確認するためのものですが、非常にイライラしますが、気分を害することはありません。
server = self.__conn_jenkins_server(url)
name = server.get_job_name(project_name)if name is None:return False
return True
詳細については、公式ドキュメントを参照してください:http://python-jenkins.readthedocs.io/en/latest/api.html
**補足知識:pythonはjenkinsapi **を呼び出します
pythonを介してjenkinsapiを呼び出す場合、一部のジョブは定期的に構築する必要があります
エラー:
< title Error 403 No valid crumb was included in the request</title \n</head \n<body <h2 HTTP ERROR 403</h2
その理由は、ジェンキンスのセキュリティ設定で次のオプションをチェックするためです。クロスサイトリクエストを防ぐには、チェックするだけです。
上記のPythonJenkinsインターフェース呼び出しメソッドは、エディターによって共有されるすべてのコンテンツです。参照を提供したいと思います。