2012-02-23 5 views
6

これまでのところ、これらの議論のかなりの部分を見てきましたが、これまで成功していませんでした。TeamCityでのアーティファクトの結合

(チームシティー6.5.5上の)私たちのビルドプロセスには2つのフォルダが生成さ

、AとB

我々は現在、アーティファクトパスが(展開のために、フォルダBをビュンされている。\ B => B-%build.number%。ジップ)。しかし、フォルダAがビルド以下、であるBのZIPでアーカイブとして含まれるべきであると決定されています、B-2.0.0.zipは、次のようになります。これを実現するために

B-2.0.0.zip 
    file 1 
    ... 
    file n 
    A.zip 
     file a1 
     ... 
     file an 

、I 「アーティファクトパスを追加しまし\ A => \ B \ A.zip Bのための既存のzipのルールの前に、私たちのアーティファクトパスは次のようになりので:。。

.\A => .\B\A.zip 
.\B => .\B-%build.number%.zip 

しかし、A.zipが生成されている間(私はビルドに続いてフォルダーBに表示されます)、アーカイブB.zipには追加されません。私はビルドの出力を見て、アーティファクトは期待どおりの順序で作成されました。

率直に言って、私は困惑しています。どんな洞察もよく、本当に高く評価されます。私は潜在的に、これを達成するためにビルドスクリプトを変更することができますが、私はむしろすべて可能ではないだろう。

ありがとうございます。

編集(2/24/12): さらなる研究では、それは私がA.zipが一時ファイルとして作成されていると問題に実行していたように思えたし、すべての成果物が作成された後、所定の位置に移動しました。

だから、私は次のように私のアーティファクトパスを並べ替えてみました:

.\B => .\B-%build.number%.zip 
.\A => .\B-%build.number%.zip\A.zip 

私はこれがB.zipにA.zipを挿入するだろうと思いました。ネストされたアーカイブの代わりに、A.zipという名前のフォルダが作成されます。 TeamCityのアーカイブをネストすることができないという制限を見ていますか?

+0

私は何か似たものを望んでいました。ビルドスクリプトを使って、 。幸運 –

+0

それはますますソリューションに似ています、マイク。ありがとう。それは私だけではないことが分かりました。;) – TimW

答えて

2

あなたが正しいです、TeamCityはアーティファクトの複雑なパッケージングスキームをサポートしていません。 実際には、成果物として公開するファイルを準備するためのビルドステップを追加することです。

+0

それは残念ですが、まったく予想外のことではありません。ありがとう、Yaegor! – TimW

2

Teamcity Serviceメサージを使用して、ビルドが完了する前に最初のアーカイブを作成することもできます。少なくともバージョン9で、それが可能になりました

%env.TEAMCITY_DATA_PATH%\system\artifacts\%env.TEAMCITY_PROJECT_NAME%\%env.TEAMCITY_BUILDCONF_NAME%\%env.BUILD_NUMBER%\B\A.zip => .\B-%build.number%.zip 
.\B => .\B-%build.number%.zip 
7

のような何か:

##teamcity[publishArtifacts '.\A => .\B\A.Zip'] 

は、次にビルド構成におけるアーティファクトの包装工程でビルドアーティファクトをお返しチームの都市を持っています「アーティファクトパス」フィールドで次のようにすると、複数のファイルを同じzipファイルに追加できます。

.\A => myArchive.zip 
.\B => myArchive.zip 

でも、サブフォルダ/サブアーカイブをその場で作成できるかどうかわからない場合は...

+2

関連性の高いヒント。私のユースケースはまさにこれでした。私はこれがTeamCity 9.Xで動作することを確認します。 – Form

+1

サブフォルダは次のように作成できます:+:*/*。css => report.zip!/ css / – iFred

関連する問題