1

サーバー/ターゲット(この場合はHeroku)へのgit-repoの展開を実行するタスク(ant/rakeなどではなくカスタムコマンド)を作成する方法を見つけようとしています。これを手動で行うとしたら、それはgit push heroku master.

基本的なパイプライン/ステージ/ジョブ/タスク (カスタム コマンド、この場合は Python スクリプト) と単一のエージェントを作成しました。パイプラインにはマテリアル (名前付きの git リポジトリ) があります。スクリプト内で出力してos.environ.items()います。最新のコミットの SHA など、いくつかの変数がありますが、実際のリポジトリの URL はありません。

では、エージェント (またはタスク) は、デプロイするリポジトリをどのように認識するのでしょうか?

パイプラインはマテリアル名を認識しており、${materialName} などの環境変数を渡そうとしました (うまくいきませんでした)。タスクで URL をハードコードすることもできますが、それは実際の解決策ではありません。

Thoughtworks:GO のドキュメントは洗練されていますが、詳細は少し不足しています。この基本的なことは十分に文書化されていると思っていましたが、もしそうなら、私は今のところ見つけていません。

4

1 に答える 1

2

タスクがエージェントで実行されると、マテリアル (config) で指定されたリポジトリのクローンが作成されます。.git/config にはリモートの Heroku URL がないため、機能しgit push heroku masterません。

git-repo を Heroku にデプロイする前に、Heroku リモート URL を追加する必要があります。

git remote add heroku git@heroku.com:project.git

project は Heroku プロジェクトの名前です。これは、毎回クリーンな作業ディレクトリを実行しない限り、1 回だけ実行する必要があります(エージェントの作業ディレクトリ内のすべてのファイル/ディレクトリを削除するステージ設定で、UI からもこのオプションを確認できます: Admin -> Piplelines -> ステージ -> ステージ設定タブ) この場合、デプロイするタスクを実行する前に、タスクを介してリモート URL を追加する必要がある場合があります。

これが完了すると、heroku xxxx コマンドを使用できるようになり (デプロイに使用しているエージェント マシンに Heroku Toolbelt がインストールされていると仮定します)、通常どおり 経由で Heroku にプッシュできるようになりgit push heroku masterます。

于 2014-04-21T07:11:10.830 に答える