3

私のgrunt buildタスクは、/dist/私のプロジェクトが依存する を作成します。ビルドしたファイルをリポジトリに含めたくありません。プロジェクトでの継続的インテグレーション ビルドを可能にするために、むしろ Jenkins を使用したいと考えています。これは私が持っているもので、.openshift/action_hooks/build実行されていない理由がわかりません:

echo " >>>>>>>>> Building with grunt..."
grunt build
echo " >>>>>>>>> Finished building with grunt..."

Jenkins ビルド ログまたはアプリケーション ログにこれらのエコー行が表示されないため、実行されていないことがわかります ( rhc tail <app-name>)。

また、サーバーにsshしてgrunt build手動で実行しようとすると、gruntコマンドが見つからないため、これが可能かどうか疑問に思います...

ビルドされたファイルをレポに含めるだけですか? もしそうなら、OpenShift はいつこれを修正しますか? :)

何か間違ったことをしている場合はお知らせください。ありがとう!

4

4 に答える 4

4

これは古い質問ですが、この問題に対する最新の回答を発見しました。

まず、grunt-cli を依存関係 ( npm install grunt-cli --save) に追加できるようになりました。Openshift は、-gフラグを使用して一般的にインストールされるものを自動的にパスに追加します。

Openshift サイトから:

-g または --global フラグを使用して通常インストールされるコマンド ライン ユーティリティは、プロジェクトの package.json ファイルの依存関係または devDependencies セクションに含まれている限り、システムの $PATH に自動的に追加されます。

内部.openshift/action_hooks/buildでは、まずホーム ディレクトリを repo ディレクトリにリセットし、実行grunt buildしてからホーム ディレクトリを元のディレクトリに戻す必要があります。

#!/bin/bash

OLD_HOME=$HOME
cd $OPENSHIFT_REPO_DIR
export HOME=$OPENSHIFT_REPO_DIR

grunt build

export HOME=$OLD_HOME

これで、grunt は Gruntfile.js を見つけて、必要なタスクを実行できるようになります。

于 2015-03-07T05:18:17.563 に答える
4

ここでの根本的な問題はopenshift-origin-cartridge-nodejsであり、さらにnpm_global_module_listにはグローバル npm モジュールに grunt/grunt-cli が含まれていません。

これをデフォルトのカートリッジに入れるために、openshift/origin-server/issues/4069を RFE として開きました。

その間、 bowerと Grunt のサポートを含むEngineeramuel/openshift-origin-cartridge-nodejsに取り組んでいます。

grunt prodGruntfile.js が見つかった場合、カートリッジが実行されます。デフォルトでは、grunt はパス上にありません。これは、コマンドの前に node_modules を付けることで簡単に修正できます。

# If there is a grunt file, run $ grunt prod
if [ -f "${OPENSHIFT_REPO_DIR}"/Gruntfile.js ]; then
    (cd "${OPENSHIFT_REPO_DIR}"; node_modules/grunt-cli/bin/grunt prod)
fi

また./bin/control、bower.json ファイルがチェックされ、対応するパッケージがインストールされます。

次のコマンドを使用すると、このカスタム カートリッジをカートリッジ リフレクターですばやく簡単にテストできます。

rhc create-app nodejstest "http://cartreflect-claytondev.rhcloud.com/reflect?github=engineersamuel/openshift-origin-cartridge-nodejs"

于 2013-11-01T14:17:25.267 に答える