paket prerelease cabang Appveyor dan MyGet

 di

Kami menggunakan sebuah karya, di mana Appveyor Pengaturan untuk CI dan konsumen paket kemudian secara otomatis bergerak ke MyGet Nugee Pakan yang baru dibangun. Mungkin dalam posting masa depan, aku akan pergi, bagaimana menempatkan semua hal ini, tapi sekarang kita berasumsi bahwa Anda sudah memiliki pekerjaan; Mendorong perubahan ke cabang di repo GitHub Anda, yang kemudian dibangun dan diuji sebelum didorong Appveyor MyGet. Semuanya bagus dan halus.

Berikut adalah keajaiban berakhir di sana. Sebab tidak ada perbedaan antara sisipan prerelease perubahan rilis dan perubahan, saya menemukan bahwa saya akan membatasi dibangun cabang di Appveyor atau menghabiskan lebih banyak waktu pengobatan MyGet dalam membangun off saya tidak ingin menggunakan. Aku tahu paket dukungan MyGet prerelease, tetapi tidak peduli apa yang saya coba, saya tidak bisa mendapatkan Appveyor mereka membangun. Tidak mengherankan, saya menemukan ini frustasi. Lalu aku tersandung di respon ini khusus untuk StackOverflow:

Namun, ada beberapa masalah yang saya miliki dengan ini.

  1. tampaknya salah bahwa saya memiliki
     after_build 

    atau

    langkah jelas paket Nugee saya dibangun

  2. saya tidak ingin ada build yang
  3. prerelease
  4. Ini tidak bekerja

merasa titik pertama cukup bahwa saya ingin melihat apakah saya bisa melakukan, dan yang kedua tampak benar-benar penting.

Jadi, saya menggali lebih dalam dan menemukan bahwa

file bahwa $ menggantikan versi mendapat informasi ini dari nilai AssemblyInformationalVersion atribut yang saya menjelaskan, di saya

 

. Karena itu tidak ada, katanya Appveyor langkah membatalkan apa-apa. Itu mudah untuk memperbaiki, jadi saya mengedit saya

 AssemblyInfo.cs 

berisi atribut dan mencoba lagi. Kali ini versi terbaru seperti yang saya inginkan, bahkan tanpa uang after_build atau

Gadget,

Itu tidak benar, karena sekarang, masing-masing dirancang sebagai sebuah blok bangunan prerelease. Sementara ini adalah alur kerja potensial di

 adalah appveyor.yml 

diperbarui ketika akhirnya berhasil melepaskan apa yang saya inginkan terjadi Publikasi adalah ketika saya mencetak anak perusahaan , ini saya men-tweak saya bagaimana Appveyor membangun dan versi update dari apa variabel lingkungan didefinisikan Appveyor yang dapat saya gunakan.

Ternyata Appveyor mengatur APPVEYOR_REPO_TAG ,

jika telah dibangun mulai dari hari ditekan. Hal ini juga mendefinisikan

 APPVEYOR_REPO_BRANCH 

berisi nama cabang, dibangun. Berbekal dua variabel ini, maksudku

dua

Scripts .

script pertama lingkungan baru variabel dibuat. Jika APPVEYOR_REPO_TAG untuk true variabel Nilai set baru APPVEYOR_BUILD_VERSION ; jika tidak, maka akan

 APPVEYOR_BUILD_VERSION-APPVEYOR_REPO_BRANCH 

. Misalnya, jika Anda akan membangun Versi

 2.4.0 adalah 

, itu bukan sehari, dan cabang adalah

 Guru 

, maka variabel baru akan ditempatkan

; Namun, jika dia sehari, itu akan hanya

 2.4.0 

.

Skenario kedua panggilan

 Perbarui AppveyorBuild 

cmdlets yang disediakan oleh Appveyor, nilai variabel lingkungan baru sebagai -. Versi Nilai parameter

Kedua init Scripts, dan AssemblyInformationalVersion atribut dalam

 AssemblyInfo.cs 

(dan corresponding

di bawah ASSEMBLY_INFO

 appveyor.yml 

) memiliki semua yang saya butuhkan. Sekarang ketika saya klik pada cabang, saya mendapatkan satu set baru prerelease Nugee yang dapat saya gunakan di coding perkembangan saya, dan ketika saya membuat hari baru, saya mendapatkan lebih menarik paket. Hal ini tidak hanya mengurangi kebutuhan saya tanganku Nugee MyGet paket mengelola, tetapi juga berarti bahwa saya mengambil keuntungan dari pengaturan kebijakan retensi yang berbeda antara take prerelease dan mempublikasikan paket.

Semua dalam semua, saya menemukan pekerjaan jauh lebih baik dari apa yang saya miliki sebelumnya. Mudah-mudahan beberapa dari Anda lakukan. Contoh

 appveyor.yml 

dan file yang terkait

bisa berubah dalam pandangan adalah berikut dasarnya

yg href = “http://ups.com”> kode

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>