ট্র্যাভিস সিআই অবিচ্ছিন্ন ইন্টিগ্রেশন পরিষেবা আনুষ্ঠানিকভাবে অনেকগুলি ভাষা সমর্থন করে তবে সি # বা এফ # নয়।
আমি কি এটি আমার। নেট প্রকল্পগুলির সাথে ব্যবহার করতে পারি?
উত্তর:
ট্র্যাভিস সিআই এখন সি # সমর্থন করে । এই পৃষ্ঠা থেকে উদারভাবে উদ্ধৃত:
ওভারভিউ
সি #, এফ #, এবং ভিজ্যুয়াল বেসিক প্রকল্পগুলির জন্য সেটআপটি দেখে মনে হচ্ছে:
language: csharp
solution: solution-name.sln
mono:
- latest
- 3.12.0
- 3.10.0
লিপি
ডিফল্টরূপে ট্র্যাভিস xbuild সলিউশন-name.sln চালাবে। এক্সবিল্ড হ'ল একটি বিল্ড টুল যা মাইক্রোসফ্টের এমএসবিল্ড সরঞ্জামটির বাস্তবায়ন হতে ডিজাইন করা হয়েছে। এটি ওভাররাইড করতে, আপনি স্ক্রিপ্টের বৈশিষ্ট্যটি এটির মতো সেট করতে পারেন:
language: csharp
solution: solution-name.sln
script: ./build.sh
নিউগেট
ডিফল্টরূপে ট্র্যাভিস নুগেট রিস্টোর সলিউশন-নাম.এসএলএন চালাবে, যা আপনার সলিউশন ফাইল থেকে সমস্ত নিউগেট প্যাকেজ পুনরুদ্ধার করে। এটিকে ওভাররাইড করার জন্য, আপনি এইভাবে ইনস্টল বৈশিষ্ট্যটি সেট করতে পারেন:
language: csharp
solution: solution-name.sln
install:
- sudo dosomething
- nuget restore solution-name.sln
এটি করার এখন সরকারী উপায়ে ড্যানিয়েলনিক্সনের উত্তর দেখুন ।
এটা সম্ভব.
আপনার নিজের মনো মেশিনে, টার্মিনালটি ব্যবহার করে cd
আপনার সমাধান ডিরেক্টরিতে এবং কমান্ডটি চালাচ্ছেন xbuild
। এটি স্বয়ংক্রিয়ভাবে কাজ করতে পারে, বা এটি নাও পারে, কারণ ভিজ্যুয়াল স্টুডিওতে এমন বৈশিষ্ট্য রয়েছে যা মনোতে কিছু টুইট করার দরকার পড়ে need
দেখার জন্য বিষয়গুলি:
.csproj
লিনাক্সের সাথে ফাইলের নামের সাথে মিল রয়েছে কিনা তা পরীক্ষা করতে পরীক্ষা করে নিন যেখানে উইন্ডোজ না করে caseexport EnableNuGetPackageRestore=true
চালনার আগে নুগেটের দরকার requiresxbuild
mozroots --import --sync
সেগুলি ইনস্টল করতে ব্যবহার করুন।nuget.*
পরিবর্তে NuGet.*
নুগেটের বিভিন্ন সংস্করণে উপস্থিত থাকতে পারে।.fsproj
যোগ করে অ উইন্ডোজ মেশিনে VS2012 কনফিগারেশন ট্রিগার '$(VisualStudioVersion)' == '11.0' Or $(OS) != 'Windows_NT'
দেখুন উদাহরণ ।Unable to find framework corresponding to the target framework moniker '.NETPortable,Version=v4.0,Profile=ProfileX'. Framework assembly references will be resolved from the GAC, which might not be the intended behavior.
ব্যবহারের প্ল্যাটফর্ম শর্তগুলির জন্য অনুসন্ধান করুন ( মনো 3.0.০.১১ বা তার আগে বর্ণিত ) বা ৩.১.২ এ আপগ্রেড করুন।<PropertyGroup Condition="$(OS) == 'Windows_NT'"> <TargetFrameworkProfile>Profile46</TargetFrameworkProfile> </PropertyGroup>
বা Condition="$(OS) != 'Windows_NT'
মনোগুলির জন্য আলাদা জিনিস দ্বারা things আপনার মাইলেজ পরিবর্তিত হতে পারে. কাজের উদাহরণ দেখুন ।.ci/nunit.sh
নুনিট পরীক্ষার জন্য আমার নিজস্ব শেল স্ক্রিপ্ট, রেপোর মূলটিতে পরীক্ষা করা। সুতরাং আমি নুগেটের সাথে নুনিট-কনসোল সংস্করণটি ইনস্টল করতে পারি এবং বিভিন্নগুলিও অন্তর্ভুক্ত / বর্জনীয় বিভাগগুলি কনফিগার করে। আপনার মাইলেজ পরিবর্তিত হতে পারে, তবে এই কৌশলটি xunit ইত্যাদির জন্য কাজ করা উচিত বা এক্সবিল্ড বা জাল দিয়ে নিজের জিনিসটি করা উচিত ।
#!/bin/sh -x
mono --runtime=v4.0 .nuget/NuGet.exe install NUnit.Runners -Version 2.6.1 -o packages
runTest(){
mono --runtime=v4.0 packages/NUnit.Runners.2.6.1/tools/nunit-console.exe -noxml -nodots -labels -stoponerror $@
if [ $? -ne 0 ]
then
exit 1
fi
}
#This is the call that runs the tests and adds tweakable arguments.
#In this case I'm excluding tests I categorized for performance.
runTest $1 -exclude=Performance
exit $?
সর্বশেষতম মনো পরীক্ষার জন্য ম্যাক হোস্টগুলি ব্যবহার করা সবচেয়ে সহজ ( language:objective-c
মোনো v3.1.2 ব্যবহার করে টার্গেট করা এবং পরে কোনও ম্যাকের ডিএমজি থেকে কেবল পিকেজিতে বিতরণ পরিবর্তন করা হয়েছে তাই ইনস্টলটি বেশ সহজ This এই টেমপ্লেটে পোর্টেবল ক্লাস লাইব্রেরি সমর্থন করা উচিত, নেট 4.5.1, এবং এফশার্প 3.1।
language: objective-c
env:
global:
- EnableNuGetPackageRestore=true
matrix:
- MONO_VERSION="3.8.0"
before_install:
- wget "http://download.mono-project.com/archive/${MONO_VERSION}/macos-10-x86/MonoFramework-MDK-${MONO_VERSION}.macos10.xamarin.x86.pkg"
- sudo installer -pkg "MonoFramework-MDK-${MONO_VERSION}.macos10.xamarin.x86.pkg" -target /
script:
- xbuild
- .ci/nunit.sh Tests/bin/Debug/Tests.dll
মনোর একাধিক সংস্করণের জন্য বিল্ড ম্যাট্রিক্স সেটআপ করতে আমি ম্যাক হোস্টগুলি ব্যবহার করা সহজ। নীচে স্ক্রিপ্ট দেখুন
language: objective-c
env:
global:
- EnableNuGetPackageRestore=true
matrix:
- MONO_VER="2.10.11"
- MONO_VER="3.0.12"
before_install:
- wget "http://download.mono-project.com/archive/${MONO_VER}/macos-10-x86/MonoFramework-MDK-${MONO_VER}.macos10.xamarin.x86.dmg"
- hdid "MonoFramework-MDK-${MONO_VER}.macos10.xamarin.x86.dmg"
- sudo installer -pkg "/Volumes/Mono Framework MDK ${MONO_VER}/MonoFramework-MDK-${MONO_VER}.macos10.xamarin.x86.pkg" -target /
script:
- xbuild
- .ci/nunit.sh Tests/bin/Debug/Tests.dll
এবং এখন আপনার সি # প্রকল্পে ট্র্যাভি ব্যবহার করা ভাল should
sudo installer -pkg
। দয়া করে আমাকে এটি ঠিক করতে সহায়তা করতে পারেন? ধন্যবাদ! দেখুন, travis-ci.org/Aimeast/TestforFrst/builds/13814315
language: objective-c
এই টেমপ্লেটের জন্য প্রয়োজনীয়, যাতে এটি ওএস এক্স হোস্ট ব্যবহার করে।
এটি মূল বিষয় - প্রকল্পটি মনোতে কাজ করতে হবে। এটি বেশিরভাগ গ্রন্থাগার-শৈলীর প্রকল্পগুলির জন্য কাজ করে ( AWS SDK .NET একটি ভাল উদাহরণ) যদিও আরও উন্নয়নের প্রচেষ্টা এবং শৃঙ্খলার প্রয়োজন। লিনাক্স বিল্ডিং পরিবেশ যদি আপনি উইন্ডোজ প্ল্যাটফর্মের জন্য যেমন ডাব্লুপিএফ অ্যাপ্লিকেশন, অ্যাজুরে ক্লাউড পরিষেবা, উইন্ডোজ ফোন / স্টোর অ্যাপ্লিকেশন বা এএসপি.নেট ওয়েব এপিআইয়ের জন্য একটি প্রকল্প বিকাশ করে তবে কাজ করবে না।
অ্যাপভিয়ার সিআই উইন্ডোজ প্ল্যাটফর্মের জন্য একটি হোস্টেড ক্রমাগত সংহতকরণ পরিষেবা এবং এটি ওপেন সোর্স প্রকল্পগুলির জন্য বিনামূল্যে। এটি উইন্ডোজের জন্য ট্র্যাভিস সিআইয়ের মতো!
আপনি ভিএস.এনইটি সমাধান, কাস্টম এমএসবিল্ড প্রকল্প, পিএসকে বা ব্যাচ ফাইলের কোনও পাওয়ারশেল স্ক্রিপ্টের জন্য বিল্ড প্রক্রিয়া সেটআপ করতে পারেন। এছাড়াও অ্যাপভিয়ারের অন্তর্নির্মিত নিদর্শনগুলি পরিচালনা এবং স্থাপনার কাঠামো রয়েছে।
ইতিমধ্যে উল্লিখিত হিসাবে, ট্র্যাভিস সিআই এর সি # এর বিটা সমর্থন রয়েছে । আমি সরাসরি ব্যবহার করার জন্য এগিয়ে আছি। এছাড়াও নুনিট খুব সহজেই সংহত করা যায়। এখানে একটি ট্রাভিস.আইএমএল ফাইলের একটি ছোট উদাহরণ রয়েছে যা নুনিট পরীক্ষা চালায় এবং কমপক্ষে একটি ইউনিট পরীক্ষা ব্যর্থ হলে বিল্ডটিকে ব্যর্থ হিসাবে চিহ্নিত করে:
language: csharp
solution: ./src/yoursolution.sln
install:
- sudo apt-get install nunit-console
- nuget restore ./src/yoursolution.sln
script:
- xbuild ./src/yoursolution.sln
- nunit-console ./src/SomeLibrary.Tests/bin/Debug/SomeLibrary.Tests.dll
sudo: required
শেষে। একটি যাদুমন্ত্র মত কাজ করে.
আপনি যদি নকল ও প্যাকেটের সাথে গিটহাবের এফ # দিয়ে ট্র্যাভিস সিআই ব্যবহার করতে চান তবে এফ # প্রজেক্টস্কফোল্ডটি সুপারিশ করা হয়: