我可以在没有CRON或REST API的情况下安排Jenkins构建吗?

时间:2015-06-11 14:36:46

标签: jenkins cron continuous-integration hudson continuous-delivery

要在Jenkins中安排构建,我需要添加一个“cron”参数,然后一切正常。但我有很多驴子用户,他们不知道如何安排使用cron。

有没有办法在没有API本身(http://jenkins/job/jobname/build?delay=4000我不想要这个)或cron的情况下安排Jenkins构建?也许是一些詹金斯插件...

1 个答案:

答案 0 :(得分:0)

解决这个问题:

<?php
if($_POST) {
    $fields = array(
        "POST_PARAMETERS" => $_POST['params']
    );
    $delay = (int) $_POST['delay'];
    $username = "my_username";
    $password = "my_password";
    $token = "MY_JENKINS_TOKEN_NAME";
    $job = "JOB_NAME";
    $url = "http://jenkins_host/jenkins/job/".$job."/buildWithParameters?token=".$token."&delay=".$delay;

    $process = curl_init($url);
    curl_setopt($process, CURLOPT_HEADER, 1);
    curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
    curl_setopt($process, CURLOPT_TIMEOUT, 30);
    curl_setopt($process, CURLOPT_POST, 1);
    curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($process, CURLOPT_POSTFIELDS, http_build_query($fields));
    curl_setopt($process, CURLOPT_POST, count($fields));
    $return = curl_exec($process);
    echo http_build_query($fields);
    echo curl_error($process);
    curl_close($process);
    die;
}
?>

我给了JOB_NAME和构建参数,它运行良好。 cURL使用授权令牌为我做了诀窍。

感谢所有试图提供帮助的人。