Hudson'da bir proje için bir üretim işimiz ve bir gece işimiz var. Üretim işi, belirli bir gece yapısından # (bazı parametreler tarafından sağlanan) bazı eserler çıkarmak zorundadır. Bunu nasıl başaracağımız konusunda bize bir ipucu verebilir mi?Hudson job1 eserlerine başka bir işten nasıl2 ulaşırsınız?
cevap
Copy Artifact eklentisi bunu yapabiliyor gibi görünüyor.
başka bir yaklaşım kullanabilirsiniz işin yapılandırma sayfasında yapılandırma araçları "Çevre İnşa" olabilir
http://server/jobs/job1/[build #]/artifacts/
aracılığıyla objeyi almak için olabilir. M2 Ekstra Oluşturma Adımlarını Yapılandır kutusunu işaretleyin ve istediğiniz nesneyi bir şeyleri işleyen bir Yürütme Kabuğu ekleyin.
Biz benzer bir ihtiyacı var ve harika aşağıdaki sistemini kullanın: Bu hepsi belirli bir klasörde depolanır beri kullandığımız ArtifactJobName
dan onun içinde yapay adla önceden VARIABLE_NAME
yaratır
import hudson.model.*
def currentBuild = Thread.currentThread().executable;
currentBuild.addAction(new ParametersAction(new StringParameterValue('LAST_BUILD_STATUS', 'FAILURE')));
def buildJob = Hudson.instance.getJob("ArtifactJobName");
def artifacts = buildJob.getLastBuild().getArtifacts();
if (buildJob.getLastBuild().getResult() == Result.SUCCESS && artifacts != null && artifacts.size() > 0) {
currentBuild.addAction(new ParametersAction(new StringParameterValue('VARIABLE_NAME', artifacts[0].getFileName())));
currentBuild.addAction(new ParametersAction(new StringParameterValue('LAST_BUILD_STATUS', 'SUCCESS')));
}
. Birden fazla eseriniz varsa ne olacağından emin değilim, ama onları artifakts dizisinden alabiliyorsunuz.
Başka bir ArtifactJobName
şu anda oluşturuluyorsa ve null ile dizi alıyorsanız, sorunu önlemek için getLastSuccessfulBuild
kullanabilirsiniz.
Basit HTTP'yi, işin indirme URL'sine karşı, yapay bir işi alt işlere çekmek için yoğun bir şekilde kullanıyoruz. –
Kopya artifact eklentisi ile ilgili sorun, başka bir yere ihtiyaç duyacağınız şeyleri bilmeniz gerektiğidir. Bunu unutup tüm yapıtları varsayılan olarak kopyaladığımızda, yapı başına yaklaşık 40-50 MB olan bu, disk kullanımını çift hızda artıracaktır. Kurulumla ilgili kimlik doğrulaması gerektirdiğinden, URL yoluyla almak mümkün değildir. –
@Konstantin Bu URL'lerin kimlik doğrulama gerektirmediğini tahmin ediyorum, değil mi? –