2017-04-21 11 views
0

私は、GitHubのリポジトリにプッシュすると、リモートサーバー上で自動的にプルしてコンパイルするシステムをセットアップしようとしています。私はこれを得るには非常に有用なものがいくつか見つかりましたが、私は最後のステップで悩んでいます:私の仕事であるgulp --distを実行しています。shell_exec()でgulpタスクをどのように起動できますか?

私はthis excellent PHP scriptを使ってプルをトリガしています。これはうまくいきます。私は、追加のオプションを追加しようとすると、リポジトリをforkして終了した後にシェルコマンドを実行するAFTER_PULLを実行しました。 Here's my modification(以下も同様)。いないようです

define('AFTER_PULL', 'node ./node_modules/gulp/bin/gulp.js --dist'); 

がこれまでに発射すると、エラーがいずれかのトリガされていないようにみえ:config.phpファイルでは、私は次のように設定しています。

おそらく許可のものだと思っていますが、ユーザー(www-data)は必要なすべてのディレクトリで作業する権限を持っています。 this article detailing how to allow www-data to run without needing a passwordが見つかりましたが、これらの手順を完了した後もまだ動作していません。

私は明らかに間違ったことをしているに違いないと確信しており、私はそれを見ることができません。 sudo -Hu www-dataの端末でコマンドを実行すると、このコマンドが機能します。

... 

if (!empty(AFTER_PULL)) { 
    try{ 
     shell_exec(AFTER_PULL); 
    }catch (Exception $e) { 
     fputs($file, $e . "\n"); 
    } 
} 

... 
+1

あなたがバイナリをノードへのフルパスを試してみましたか? – Peter

+0

私はしていない、今しようとします。 – JacobTheDev

+1

@Peterうわー、そうだったと思います。私はそれが何かばかげたことを知っていた。 :)ありがとう! – JacobTheDev

答えて

1

はバイナリノードへのフルパスを使用します。

define('AFTER_PULL', ' /usr/bin/node ./node_modules/gulp/bin/gulp.js --dist'); 
関連する問題