首页 > 编程语言 >自动化测试 - php调用jenkins-api构建job

自动化测试 - php调用jenkins-api构建job

时间:2022-10-22 01:55:19浏览次数:51  
标签:return jobName job api jenkins php

背景:前一节搭建jenkins并创建了job任务后,用户可以在jenkins平台手动点击构建来执行pytest自动化任务,想实现一个从web界面去触发构建jenkins中的job任务,在这选择使用php来调用jenkins-api去触发构建

安装php-jenkins-api包

# composer安装,使用的是外国友人写的一个包,该包也是基于别人的进行了部分扩展
composer require chbiel/jenkins-php-api

php调用php-jenkins-api方法构建job

# 以下是一个自定义的service文件:JenkinsApiService.php
<?php
/**
 * Created by PhpStorm.
 * User: wkk
 * Time: 2022/10/21 - 00:26
 * Desc: <jenkins-api操作jenkins>
 */

namespace app\common\service\jenkins;

use JenkinsApi\Item\Job;
use JenkinsApi\Jenkins;

class JenkinsApiService
{
    private Jenkins $jenkins;
    private         $token;        // token密钥:php调用jenkins-api时需要的,在这不使用用户名和密码
    private         $userName;     // jenkins用户名
    private         $jenkinsHost;  // jenkins系统host:port

    public function __construct()
    {
        $this->token       = env('JENKINS.APITEST_TOKEN');
        $this->userName    = env('JENKINS.JENKINS_USER');
        $this->jenkinsHost = env('JENKINS.JENKINS_HOST');
        $this->jenkins     = new Jenkins("http://{$this->userName}:{$this->token}@{$this->jenkinsHost}");
    }

    /**
     * 获取job信息
     *
     * @param $jobName
     * @return Job|null
     */
    public function getJob($jobName): ?Job
    {
        return $this->jenkins->getJob($jobName);
    }

    /**
     * 构建job
     *
     * @param $jobName
     * @return bool
     */
    public function buildJob($jobName): bool
    {
        return $this->getJob($jobName)->launch();
    }
}

使用方法

# goujian 
/**
   * 构建job任务
   * @param $jobName
   * @return bool
   */
public static function buildJob($jobName): bool
{
    try {
        $jenkinsService = new JenkinsApiService();
        $res = $jenkinsService->buildJob($jobName);
    } catch (\Exception $e){
        // todo log日志
        $res = false;
    }

    return $res;
}

标签:return,jobName,job,api,jenkins,php
From: https://www.cnblogs.com/alisleepy/p/16815185.html

相关文章

  • 关于ReadisTemplate的Api
    ValueOperations:简单K-V操作SetOperations:set类型数据操作ZSetOperations:zset类型数据操作HashOperations:针对map类型的数据操作ListOperations:针对list类型的数据操作......
  • 高版本 jenkins 报403 需关闭跨站请求伪造保护(CSRF)
    根据官网描述,Jenkins版本自2.204.6以来的重大变更有:删除禁用CSRF保护的功能。从较旧版本的Jenkins升级的实例将启用CSRF保护和设置默认的发行者,如果之前被禁用。方......
  • Jenkins配置( Manage Jenkins )
    Jenkins配置(ManageJenkins) 全局安全配置(ConfigureGlobalSecurity)为防止忘记用户名密码,所以勾选允许用户注册.勾选任何用户可以做任何事,点击保存,如图所......
  • tf.api
    API列表Dataset基础使用tf.data.Dataset.from_tensor_slices这个api构建Dataset在这个Dataset上具体调用repeat(重复多少次),batch,interleave,map,shuffle,li......
  • Jenkins里创建job项目(windows)
    常见自由模式项目在Jenkins里点击,打开后输入项目名称、选择“Freestyleproject”并确定。    源码管理:在项目列表面板点击刚才创建的空项目,打开后点击源码管理;......
  • Opengl___API解读
    glLoadIdentity()转换为没有进行矩阵变换的状态。即对角线为1的单位矩阵。OpenGL函数思考-glLoadIdentityglPushMatrix()和glPopMatrix()glPushMatrix();对之前的矩阵......
  • 微服务架构学习与思考(11):开源 API 网关02-以 Java 为基础的 API 网关详细介绍
    微服务架构学习与思考(11):开源API网关02-以Java为基础的API网关详细介绍上一篇关于网关的文章:微服务架构学习与思考(10):微服务网关和开源API网关01-以Nginx为......
  • Apifox
    1、Apifox定位Apifox=Postman+Swagger+Mock+JMeterApifox是API文档、API调试、APIMock、API自动化测试一体化协作平台。通过一套系统、一份数据,解决多个......
  • shell命令操作(jenkins执行后判断shell执行的对与错)
    字符截取https://blog.csdn.net/JineD/article/details/124196546 条件判断http://www.caotama.com/1903002.htmlstrA=$(curl--location--requestPOST'https://b......
  • .net core 配置Swagger 摆脱PostMan,你值得拥有这样的api调试方式
    废话不多说直接来看第一步:安装nuget包:Swashbuckle.AspNetCore.Swagger            Swashbuckle.AspNetCore.SwaggerGen         ......