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);
}
);
}
マイジェンキンスジョブは、次のパラメータの設定があります。
仕事内の私のビルドコマンドは次のようになります(シェル):
# 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
を私はパラメータを見れば、彼らは空です:
だから... ...私は明らかに私に何かをしていますHTTPリクエスト...任意の考えですか?
ビルドスクリプトに構文エラーが含まれています – jordanm
ですか?ジョブは手動で実行できます(呼び出したPythonスクリプトに問題があるため最終的に失敗します...) –
はい、環境チェックに空白がありませんが、修正されていてもif条件のいずれも実行されません静的な文字列( 'environment'は' $ environment'でなければなりません)を比較しているので真実です。 – jordanm