Çeşitli derleme komutlarını jenkins tanımlarının dışına çekmeye ve bunları kaynak veri havuzunda bir veya daha fazla komut dosyasına depolamaya çalışın.jenkins windows slave'de komut dosyaları çalıştıran
Bazı komut dosyaları kabuk betikleri, bazıları toplu iş dosyalarıdır. Bir kabuk betiği, c: \ program files \ git \ git-bash.exe dosyasını çalıştırarak ve bazı git komutlarını gerçekleştirerek başlatır (hayır, eklentiyi kullanmıyorum - jenkins sunucum değil ve en kısıtlayıcı, minimum düzeyde verildi Bu işi yapmak için erişim, ben bir komut dosyası'ndan git komutlarını çalıştırmak için gidiyorum). Diğer bazı çalışmalar da değişkenleri ayarlamak, yapı için dosyaları yapılandırmak vb. Için yapılır.
Sorun şu ki, bu kabuk komut dosyasından bir toplu iş dosyasını çalıştırmaya çalışıyor. step1.sh komut
# Override Jenkins value
WORKSPACE=/f/git/project
WIN_WORKSPACE=`cygpath -w $WORKSPACE | sed 's/\\\\/\\\\\\\\/g'`
echo "WIN_WORKSPACE: $WIN_WORKSPACE"
...
echo "Building!"
echo cmd.exe /c call builds\\step2.bat $WIN_WORKSPACE
cmd.exe /c call builds\\step2.bat $WIN_WORKSPACE
echo "done building"
için aşağı doğru ilerler
#!c:\Program Files\Git\git-bash.exe
/f/git/project/builds/step1.sh $MASTER_BRANCH $BUILD_TYPE $TAG_CLIENT
: jenkins olarak
, ben (argümanlar olarak iletilen üç parametrelerle) sürecini başlatmak için bir kabuk komut dosyası var ne olur, (ya da "ara" anahtar sözcüğü olmadan) cmd.exe sadece bir komut istemine ortaya çıkar ve ben "exit" yazana kadar orada oturur olmasıdır:
Building!
cmd.exe /c call builds\step2.bat F:\\git\\project
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
F:\git\project>exit <--- I have to type that.
exit
done building
Toplu dosyaları git-bash kabuklarından çalıştırmak mümkün mü? Daha iyi bir yaklaşım var mı? Bir toplu iş dosyasına dönüştürmeyi denemeye başladım ama sözdizimi (komut çıktısını yakalamak ve bir değişkene depolamak gibi şeyler için) kabuk betikleriyle daha güzel. Ayrıca, yapının başka bir bölümünü tamamlamak için başka bir sunucuyla iletişim kurmak için en az birkaç kabuk (bekletme) komut dosyasını çalıştırmam gerekiyor.
Tamam ... bunu yaptı. Niye ya? – Jon
Git pencereler kadar düzgün değil, Cygwin, bash ve cmd geçişi için daha iyidir, böylece windows posix yolları geçemez. [burada] (https://github.com/git-for-windows/build-extra/blob/master/installer/ReleaseNotes.md) [burada] (https://github.com/lavv17/lftp/issues/ 109) [ve belki burada] (http://stackoverflow.com/questions/11865085/out-of-a-git-console-how-do-i-execute-a-batch-file-and-then-return- için-git-CONSO) – Bloodied