0

最初に言及する必要があるのは、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」を実行することはできません。

4

1 に答える 1

0

同様の問題がありました。ボットのプレトリガー スクリプトから git リモート リポジトリに変更をプッシュしようとしましたが、受け取るたびに:

fatal: could not read Username for 'http://...': Device not configured

私の最終的な解決策は、ユーザーのキーチェーンに資格情報を保存することでした_xcsbuildd:

# login as a _xcsbuildd user
sudo -u _xcsbuildd /bin/bash
# store credentials in the default osx keychain
git credential-osxkeychain store https://github.com
# copy added credentials from `login` keychain to `System` keychain
于 2015-07-21T21:08:04.353 に答える