【python脚本】10个jenkins相关常用的脚本

o-O-oO / 2024-09-13 / 原文

1. 创建 Jenkins 用户
2. 获取 Jenkins 构建状态
3. 触发 Jenkins 构建
4. 安装 Jenkins 插件
5. 备份 Jenkins 配置
6. 恢复 Jenkins 配置
7. 更新 Jenkins Job 配置
8. 创建 Jenkins Job
9. 删除 Jenkins Job
10. 获取 Jenkins Jobs 列表

原创 huaan9527 测试开发学习交流

  1. 创建 Jenkins 用户

使用 Jenkins REST API 创建用户。

import requests
def create_jenkins_user(username, password):
    url = "http://jenkins_url:8080/user/{username}/createPassword?password={password}".format(
        username=username, password=password)
    response = requests.post(url)
    if response.status_code == 200:
        print("User created successfully")
    else:
        print("Failed to create user")
if __name__ == "__main__":
    create_jenkins_user("newuser", "securepassword")
  1. 获取 Jenkins 构建状态

使用 Jenkins REST API 获取特定构建的状态。


import requests
def get_build_status(job_name, build_number):
    url = "http://jenkins_url:8080/job/{job_name}/{build_number}/api/json".format(
        job_name=job_name, build_number=build_number)
    response = requests.get(url)
    if response.status_code == 200:
        data = response.json()
        print("Build status:", data['result'])
    else:
        print("Failed to get build status")
if __name__ == "__main__":
    get_build_status("MyJob", 123)
  1. 触发 Jenkins 构建

使用 Jenkins REST API 触发新的构建。

import requests
def trigger_build(job_name):
    url = "http://jenkins_url:8080/job/{job_name}/build".format(job_name=job_name)
    response = requests.post(url)
    if response.status_code == 201:
        print("Build triggered successfully")
    else:
        print("Failed to trigger build")
if __name__ == "__main__":
    trigger_build("MyJob")

  1. 安装 Jenkins 插件

使用 Jenkins CLI 安装插件。

import subprocess
def install_plugin(plugin_name):
    cli_path = "/path/to/jenkins-cli.jar"
    command = ["java", "-jar", cli_path, "install-plugin", plugin_name]
    subprocess.run(command)
if __name__ == "__main__":
    install_plugin("git")
  1. 备份 Jenkins 配置

备份 Jenkins 的配置到指定文件。

import os
def backup_jenkins_config(config_file):
    cli_path = "/path/to/jenkins-cli.jar"
    command = ["java", "-jar", cli_path, "config-save", config_file]
    subprocess.run(command)
if __name__ == "__main__":
    backup_jenkins_config("jobs.xml")
  1. 恢复 Jenkins 配置

从备份文件恢复 Jenkins 的配置。

import os
def restore_jenkins_config(config_file):
    cli_path = "/path/to/jenkins-cli.jar"
    command = ["java", "-jar", cli_path, "config-restore", config_file]
    subprocess.run(command)
if __name__ == "__main__":
    restore_jenkins_config("jobs.xml")
  1. 更新 Jenkins Job 配置

使用 Jenkins Job DSL 更新 Jenkins Job 的配置。

import os
def update_job_config(job_name, config_xml):
    cli_path = "/path/to/jenkins-cli.jar"
    command = ["java", "-jar", cli_path, "update-job", job_name, "--file", config_xml]
    subprocess.run(command)
if __name__ == "__main__":
    update_job_config("MyJob", "job_config.xml")

  1. 创建 Jenkins Job

使用 Jenkins Job DSL 创建一个新的 Jenkins Job。

import os
def create_job(job_name, config_xml):
    cli_path = "/path/to/jenkins-cli.jar"
    command = ["java", "-jar", cli_path, "create-job", job_name, "--file", config_xml]
    subprocess.run(command)
if __name__ == "__main__":
    create_job("NewJob", "job_config.xml")
  1. 删除 Jenkins Job

使用 Jenkins REST API 删除 Jenkins Job。

import requests
def delete_job(job_name):
    url = "http://jenkins_url:8080/job/{job_name}/doDelete".format(job_name=job_name)
    response = requests.post(url)
    if response.status_code == 200:
        print("Job deleted successfully")
    else:
        print("Failed to delete job")
if __name__ == "__main__":
    delete_job("OldJob")
  1. 获取 Jenkins Jobs 列表

使用 Jenkins REST API 获取所有 Jobs 的列表。

import requests
def get_jobs_list():
    url = "http://jenkins_url:8080/api/json"
    response = requests.get(url)
    if response.status_code == 200:
        jobs = response.json()['jobs']
        for job in jobs:
            print(job['name'])
    else:
        print("Failed to get jobs list")
if __name__ == "__main__":
    get_jobs_list()

注意事项

在使用这些脚本之前,请确保已经正确配置了 Jenkins 的访问权限,并且 Jenkins 的 URL 和端口是正确的。

对于使用 Jenkins CLI 的脚本,你需要下载并提供正确的 jenkins-cli.jar 文件路径。

在实际环境中,可能还需要考虑错误处理和异常处理等细节问题。‍