2017-04-20 5 views
1

Jenkinsの仕事から私たちのモバイルアプリケーションのビルドをトリガするために私は私の会社のために開発している内部のウェブサイトを持っています。このウェブサイトはAngularJSで書かれており、httpモジュールを使ってJenkinsに電話をかけています。Jenkinsはパラメータなしでビルドトリガをパラメータ化しました

私のサービスで私の角度の方法は次のようになります。

postBuildRequest : function(platform, project, ticket, environment, username, password, callback) 
    { 
    var method = 'GET'; 
    var url = "http://JENKINS_URL/JOB_NAME/buildWithParameters"; 
    var params = 
    { 
     token: "some_job_token", 
     parameter: [{ platform: platform, project: project, ticket: ticket, environment: environment }] 
    } 
    var headers = 
    { 
     "Authorization": "Basic " + window.btoa(username + ":" + password) 
    } 
    var config = 
    { 
     method: method, 
     url: url, 
     headers: headers, 
     params: params 
    }; 

    $http(config).then(
     function successCallback(response) { 
     console.log("postBuildRequest Success!! \n" + response.statusText + " with Status Code: " + response.status); 
     callback(response); 
     }, 
     function errorCallback(response) { 
     console.log("postBuildRequest Error :(\n" + response.statusText + " with Status Code: " + response.status); 
     callback(response); 
     } 
    ); 

    } 

マイジェンキンスジョブは、次のパラメータの設定があります。

enter image description here

仕事内の私のビルドコマンドは次のようになります(シェル):

# Parse the build variant 
if [$environment == 'live']; then 
    liveorstaging='--live' 
elif [$environment == 'staging']; then 
    liveorstaging='--staging' 
else 
    liveorstaging='' 
fi 

# Run the config buildandroid script 
if ! [ -z $ticket ]; then 
    config buildandroid $project -t $ticket $liveorstaging --commit 
else 
    config buildandroid $project --live --commit 
fi 

私はb大丈夫ですが、パラメータが表示されないため失敗しています。

マイコンソールを吐き出している

12:44:39 Usage: config buildandroid [OPTIONS] PROJECT 
12:44:39 
12:44:39 Error: Missing argument "project". 
12:44:39 Build step 'Execute shell' marked build as failure 
12:44:39 Finished: FAILURE 

を私はパラメータを見れば、彼らは空です:

enter image description here

だから... ...私は明らかに私に何かをしていますHTTPリクエスト...任意の考えですか?

+0

ビルドスクリプトに構文エラーが含まれています – jordanm

+0

ですか?ジョブは手動で実行できます(呼び出したPythonスクリプトに問題があるため最終的に失敗します...) –

+0

はい、環境チェックに空白がありませんが、修正されていてもif条件のいずれも実行されません静的な文字列( 'environment'は' $ environment'でなければなりません)を比較しているので真実です。 – jordanm

答えて

1

まあ...固定しました。私のURLがどのように見えるようにするため

var params = 
    { 
     token: token, 
     key1: value1, 
     key2: value2, 
     key3: value3, 
     key4: value4 
    } 

:私は、私は非常に文字通りhttps://wiki.jenkins-ci.org/display/JENKINS/Parameterized+BuildでWikiページを取って、私は、このようなようにやっているはずです

PARAMETER=[{key:value}] 

としての私のすべてのパラメータを掲示されたことに気づきました。

buildWithParameters?environment=staging&platform=some_platform&project=some_project&ticket=some_ticket&token=eb_some_token 
関連する問題