2012-02-23 24 views
6

Şimdiye kadar hiç bir başarı elde etmeden bu tartışmaların adil bir sayısını inceledim. (TeamCity 6.5.5 üzerine)TeamCity'deki eserleri birleştirmek

Bizim oluşturma işlemi iki klasör, A ve B

Şu anda dağıtım (yapay yolu için klasör B sıkıştırma vardır üretir. \ B => B-% build.number%. posta).

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

bu I, başarmak için: Ancak, klasör A'dır yapı aşağıdaki B. zip arşiv olarak yer alması gerektiğini karar verilmedi, B-2.0.0.zip gibi görünmelidir 'eklenen yapay yolunu ettik \ A => \ bizim yapay yolları benziyor B \ A.zip B için mevcut zip kuralı önce, yani:.. A.zip üretilmekte iken,

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

Ancak (I yapısını takip eden B klasöründe görebilir), B.zip arşivine eklenmez. Yapım çıktısına baktım ve eserler beklenen sırada yaratıldı.

Açıkçası şaşkınım. Herhangi bir anlayış iyi ve gerçekten takdir edilecektir. Bunu gerçekleştirmek için yapı senaryosunu değiştirebilirim, ama mümkün değilse tercih ederim.

Şimdiden teşekkürler.

Düzenleme (2/24/12): daha fazla araştırma üzerinde , ben A.zip geçici dosya olarak yaratılan bir sorun haline koşuyordu gibi görünüyordu ve tüm eserler yaratılmıştır sonra yerine taşındı.

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

Bu B.zip içine A.zip eklemek düşündüm:

Yani, aşağıdaki gibi benim yapay yolları yeniden düzenlenmesi çalıştı. Yuvalanmış bir arşiv yerine, A.zip adında bir klasör oluşturur. Sadece TeamCity'in arşivleri barındıramayacağı bir sınırlamaya mı bakıyorum?

+0

İstediğim yapıya sahip bir dizin oluşturmak için derleme komutunu kullanmanın dışında benzer bir şey istedim ve iyi bir çözüm bulamadım. . İyi şanslar –

+0

Çözüme daha çok benziyor Mike. Teşekkürler. Sadece bilmek için iyi değil.;) – TimW

cevap

2

Haklısınız, TeamCity, yapay nesneler için karmaşık paketleme düzenlerini desteklemiyor. Gitmenin yolu, dosyaları yapay olarak yayınlanacak şekilde hazırlamak için bir oluşturma adımı eklemektir.

+0

Bu bir utanç, ama tamamen beklenmedik değil. Sağol Yaegor! – TimW

2

Yapılandırma tamamlanmadan önce ilk arşivi oluşturmak için bir seçenek Teamcity Service mesage kullanmak olabilir. En azından sürümü 9, bu artık mümkün

%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

:

şey gibi:

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

Sonra inşa yapılandırmasında obje ambalaj adımda inşa objeyi geri vermek ekip şehri var "eserler yolları" alanında böyle bir şey yaparak aynı zip dosyası için birden fazla dosya eklemek için:

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

Ancak, alt klasörlerin/alt arşivlerin anında oluşturulup oluşturulmayacağı konusunda emin olun ...

+2

Süper ilgili ipucu. Benim kullanım durumum tam olarak buydu; Bunun TeamCity 9.X'te çalıştığını onaylıyorum. – Form

+1

Alt klasörleri şu şekilde oluşturulabilir: +: */*. Css => report.zip!/Css / – iFred

İlgili konular