Symfoware

Symfowareについての考察blog

PHPからリモートでJenkinsのジョブを起動する

PythonからリモートでJenkinsのジョブを実行してみました。

JenkinsのジョブをPythonでリモートから実行する
JenkinsのパラメータージョブをPythonでリモートから実行する

同じことをPHPでやってみます。



通常のビルド呼び出し



ベーシック認証部分はURLに含め、file_get_contentsで呼び出してみました。


  1. <?php
  2. $username = 'symfo';
  3. $password = 'eb6d158c477b8f8f700d54c2d9c6dc12';
  4. $url = "http://{$username}:{$password}@192.168.1.102:8080/job/test-job/build?token=sample_token";
  5. file_get_contents($url);




これであっさり実行できました。
Pythonではベーシック認証が通過できず苦労したのですが、上記のソースと同様
URLに含めてしまえば簡単に実行できそうです。




file_get_contentsでBasic認証



ヘッダーに自分で認証情報を書き込むパターンも試しておきます。

こちらを参考にしました。
PHP file_get_contentsでAPIサーバーにGET,POST,画像アップロード
【php】ベーシック認証のかかっているWebページの内容を取得する


  1. <?php
  2. $username = 'symfo';
  3. $password = 'eb6d158c477b8f8f700d54c2d9c6dc12';
  4. $url = "http://192.168.1.102:8080/job/test-job/build?token=sample_token";
  5. $auth = base64_encode($username . ':' . $password);
  6. $context = stream_context_create([
  7.     'http' => [
  8.         'method'=> 'GET',
  9.         'header'=> 'Authorization: Basic '. $auth . "\r\n\r\n"
  10.     ]
  11. ]);
  12. file_get_contents($url, false, $context);




最初のプログラムと同様、リモートからビルドの実行が行えます。





パラメーター付きビルド



JenkinsのパラメータージョブをPythonでリモートから実行する
こちらと同様、target_idというパラメーターを持つジョブを実行してみます。

指定するURLの末尾を「build」から「buildWithParameters」に変更します。


  1. <?php
  2. $username = 'symfo';
  3. $password = 'eb6d158c477b8f8f700d54c2d9c6dc12';
  4. $url = "http://192.168.1.102:8080/job/test-job/buildWithParameters";
  5. $auth = base64_encode($username . ':' . $password);
  6. $context = stream_context_create([
  7.     'http' => [
  8.         'method'=> 'GET',
  9.         'header'=> 'Authorization: Basic '. $auth . "\r\n\r\n"
  10.     ]
  11. ]);
  12. // 送信するパラメーター
  13. $params = [
  14.     'token' => 'sample_token',
  15.     'target_id' => '日本語テスト',
  16.     'cause' => '実行時の要因です。',
  17. ];
  18. file_get_contents($url . '?' . http_build_query($params), false, $context);




無事日本語の文字化けもなく実行できました。

700_01.png



【参考URL】

PHP file_get_contentsでAPIサーバーにGET,POST,画像アップロード
【php】ベーシック認証のかかっているWebページの内容を取得する


関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2016/07/01(金) 00:26:31|
  2. PHP
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<jenkins パラメータービルドを使用して、データベースのバックアップを取得する | ホーム | JenkinsのパラメータージョブをPythonでリモートから実行する>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1902-638f4b70
この記事にトラックバックする(FC2ブログユーザー)