jenkins-client
- Designed to interact with Jenkins CI using its API.
phppkg/jenkins-client
is inspired from the https://github.com/jenkins-khan/jenkins-php-api
- Required PHP 8.0+
composer
composer require phppkg/jenkins-client
Before anything, you need to instantiate the client :
$jenkins = new \PhpPkg\JenkinsClient\Jenkins('http://host.org:8080');
If your Jenkins needs authentication, you need to pass a URL like this : 'http://user:[email protected]:8080'
.
Simple example - sending "String Parameters":
curl JENKINS_URL/job/JOB_NAME/buildWithParameters \
--user USER:TOKEN \
--data id=123 --data verbosity=high
Another example - sending a "File Parameter":
curl JENKINS_URL/job/JOB_NAME/buildWithParameters \
--user USER:PASSWORD \
--form FILE_LOCATION_AS_SET_IN_JENKINS=@PATH_TO_FILE
Here are some examples of how to use it:
$job = $jenkins->getJob("dev2-pull");
vdump($job->getColor());
//string(4) "blue"
$job = $jenkins->launchJob("clone-deploy");
vdump($job);
// bool(true) if successful or throws a RuntimeException
$view = $jenkins->getView('madb_deploy');
foreach ($view->getJobs() as $job) {
var_dump($job->getName());
}
//string(13) "altlinux-pull"
//string(8) "dev-pull"
//string(9) "dev2-pull"
//string(11) "fedora-pull"
$job = $jenkins->getJob('dev2-pull');
foreach ($job->getBuilds() as $build) {
var_dump($build->getNumber());
var_dump($build->getResult());
}
//int(122)
//string(7) "SUCCESS"
//int(121)
//string(7) "FAILURE"
var_dump($jenkins->isAvailable());
//bool(true);
For more information, see the Jenkins API.