Python jenkinsapiチュートリアル(3)

Jenkins APIを使用する

JenkinsAPIを使用すると、Jenkinsサービスのステータスを照会したり、構成を変更したり、ノードまたはジョブのステータスを自動的に監視したりできます。

例1:jenkinsバージョンを取得する

Jenkinsのバージョンを取得する

from jenkinsapi.jenkins import Jenkins

def get_server_instance():
    jenkins_url = 'http://jenkins_host:8080'
    server = Jenkins(jenkins_url, username='foouser', password='foopassword')
    return server

if __name__ == '__main__':
    print get_server_instance().version

上記のコードは、ホストjenkins_hostで実行されているJenkinsのバージョンを示しています。

Jenkinsバージョン1.426以降では、Jenkinsインスタンスに対してユーザーを認証するときに、実際のパスワードの代わりにAPIトークンを指定できます。ユーザーがAPIトークンを生成する方法の詳細については、Jenkis Wikiページ「Authentication of Script Clients」を参照してください。APIトークンを取得したら、Jenkins APIを使用してJenkinsサーバーインスタンスを作成するときに、実際のパスワードの代わりにAPIトークンを渡すことができます。

例2:Jenkinsサービスのジョブの詳細を取得する

Jenkinsサーバーで実行されているジョブの詳細を取得する

"""Get job details of each job that is running on the Jenkins instance"""
def get_job_details():
    # Refer Example #1 for definition of function 'get_server_instance'
    server = get_server_instance()
    for job_name, job_instance in server.get_jobs():
        print 'Job Name:%s' % (job_instance.name)
        print 'Job Description:%s' % (job_instance.get_description())
        print 'Is Job running:%s' % (job_instance.is_running())
        print 'Is Job enabled:%s' % (job_instance.is_enabled())

例3:Jenkinsジョブをキャンセル/開始する

Jenkinsジョブを無効/有効にする

"""Disable a Jenkins job"""
def disable_job():
    # Refer Example #1 for definition of function 'get_server_instance'
    server = get_server_instance()
    job_name = 'nightly-build-job'
    if (server.has_job(job_name)):
        job_instance = server.get_job(job_name)
        job_instance.disable()
        print 'Name:%s,Is Job Enabled ?:%s' % (job_name,job_instance.is_enabled())

job_instance.enable() Jenkinsジョブ開始するために使用し  ます。

例4:プラグインの詳細を取得する

プラグインの詳細を取得する

Jenkinsインスタンスにインストールされているプラ​​グインの詳細を取得する

def get_plugin_details():
    # Refer Example #1 for definition of function 'get_server_instance'
    server = get_server_instance()
    for plugin in server.get_plugins().values():
        print "Short Name:%s" % (plugin.shortName)
        print "Long Name:%s" % (plugin.longName)
        print "Version:%s" % (plugin.version)
        print "URL:%s" % (plugin.url)
        print "Active:%s" % (plugin.active)
        print "Enabled:%s" % (plugin.enabled)

例5:完了したビルドタスクのビルドバージョン情報を取得する

完了したビルドからバージョン情報を取得する

これはJenkinsAPIの典型的な使用法です。これは、プロジェクトを最初にビルドしたときに最初に考えた使用法です。継続的インテグレーション環境では、最後に成功したビルドのバージョン管理情報をプログラムで検出できるようにする必要があります。特定のリリースプロセスをトリガーするため。

from jenkinsapi.jenkins import Jenkins

def getSCMInfroFromLatestGoodBuild(url, jobName, username=None, password=None):
    J = Jenkins(url, username, password)
    job = J[jobName]
    lgb = job.get_last_good_build()
    return lgb.get_revision()

if __name__ == '__main__':
    print getSCMInfroFromLatestGoodBuild('http://localhost:8080', 'fooJob')

Gitソースコード管理システムで使用すると、20行目は「8b4f4e6f6d0af609bb77f95d8fb82ff1ee2bba0d」のようなものを出力します。これはGitバージョン番号のように見えます。

元の記事を59件公開 賞賛を69件 270,000回以上の閲覧

おすすめ

転載: blog.csdn.net/pansaky/article/details/102940019