最初に言及する必要があるのは、ssh を使用できないことです。
それが邪魔にならないように、誰かが助けてくれるなら、私は永遠に感謝します.
タグを作成し、ビルドの成功時にリモートにプッシュするビルド後のスクリプトをボットで実行する必要があります。ボットで定義された「ポスト」スクリプト、プロジェクト ビルド設定内の「ビルド ステージ」、および CI に使用しているカスタム共有スキームのビルド後スクリプトとして実行してみました。スクリプトは次のようになります。
if [ -z "$PROJECT_DIR" ]; then
echo "No project dir variable"
else
cd $PROJECT_DIR;
echo "PROJECT_DIR is $PROJECT_DIR";
echo "Directory is $(pwd)";
git config user.email "myself@mycompany.com"
git config user.name "myself"
CURRENTTAG=$(git describe --abbrev=0 --tags);
echo "CURRENTTAG is $CURRENTTAG";
CURRENTTAG_PRE=`echo $CURRENTTAG | awk -F "_" '{print $1}'`;
echo "CURRENTTAG_PRE is $CURRENTTAG_PRE";
CURRENTTAG_POST=`echo $CURRENTTAG | awk -F "_" '{print $2}'`;
echo "CURRENTTAG_POST is $CURRENTTAG_POST";
if [ -z "$CURRENTTAG_POST" ]; then
echo "catastrophic failure"
exit 0
else
CURRENTTAG_POST=$(($CURRENTTAG_POST + 1));
SPACE="_";
NEW_TAG=$CURRENTTAG_PRE$SPACE$CURRENTTAG_POST;
echo "NEW_TAG is $NEW_TAG";
git tag -a $NEW_TAG -m "$NEW_TAG";
git push origin "$NEW_TAG"
echo "New tag $(git describe --abbrev=0 --tags) created"
fi
fi
したがって、git config
コマンドのハックは、git がボットに「あなたが誰であるか教えてください」と尋ねるのを止めるためにあります。ただし、ボットがそれを超えると、git push は次のように失敗します。
fatal: could not read Password for 'https://myself@mygitremote.com': Device not configured
これをどのように乗り越えるかについて、HTTPS ベースの提案を誰でも提供できますか?
ちなみに、私は Xcode 6.4 と Server 4.1.2 を使用しています。
ありがとう。
編集: _xcsbuilddのシェルに sudoingすることから始まる多くのソリューションを見てきました。Xcode Server 4.1 では、 _xcsbuilddのホーム ディレクトリがないことはほぼ間違いないため、「git config --global」を実行することはできません。