2

git を使用して Jenkins をセットアップし、継続的インテグレーションのために github フックを使用しています。カスタム ワークスペース ディレクトリを使用しています。ソースコード管理では Git を使用しています。master ブランチのみをチェックアウトしており、「レポのローカル サブディレクトリ (オプション)」フィールドのディレクトリの場所として $GIT_BRANCH-$GIT_COMMIT があります。ビルド セクションでは、実行しているシェルを実行しています。

- pwd
- ls
- cd $GIT_BRANCH-$GIT_COMMIT
- ...

私が得ている問題は、「cd $GIT_BRANCH-$GIT_COMMIT」を実行するときです。次のエラーが表示されます。

- /tmp/hudson7624299777846840848.sh: 4: cd: can't cd to master-9297429dba145737291168f284796421f73c0ee3 

pwd ごとに、私は正しいディレクトリにいます。 lsディレクトリが作成されていると表示されないため、このエラーが発生します。ビルドが失敗した後、ビルド ホストをチェックして、クローンが実行され、ディレクトリが作成されているかどうかを確認しました。していないようです。ただし、ビルドを手動で実行すると、ビルドは成功します。 lsディレクトリを示します。

これが発生する理由についてのここでの洞察は大歓迎です。ここでの私の目標は、ビルドごとに最新のソースを含む新しいディレクトリを作成して、テストやメトリックなどの履歴を維持できるようにすることです。私は Jenkins を初めて使用するので、これを行うためのより良い方法があればオープンです提案に。

4

2 に答える 2

1

カスタムワークスペースディレクトリフィールド内で次の構文を使用して、変数を解決できます

${GIT_BRANCH}-${GIT_COMMIT}
于 2012-10-08T21:45:54.153 に答える
0

私は以前に同様の問題に遭遇しました。「カスタム ワークスペース ディレクトリ」フィールド内で Linux コマンド エイリアスを使用しようとしましたが、うまくいきませんでした。

2 つ目のオプションを強調します。アーカイブが必要な場合は、ワークスペース ディレクトリとして ./recent を指定し、一連のビルド後のコマンドを追加できます。例えば:

MMMDD=`date +%b%d`
cp -R ./recent ./$MMMDD
于 2012-10-08T19:58:52.827 に答える