Jadi Kue . Banyak yang telah mendengar, banyak yang ingin mencoba, tetapi menundanya. Tentu saja, jika Anda telah bekerja untuk TeamCity atau Jenkins sepanjang waktu dan terus melakukannya , lalu mengapa menciptakan kembali sesuatu yang sudah bekerja dengan baik? Cintai hidupmu dan berbahagialah. Tapi, katakanlah, sebuah proyek baru telah muncul dalam kehidupan tercinta Anda, tenggat waktu baru, poin cerita minimum sebelum rilis, tetapi Anda tidak punya pengalaman dengan kolektor baru? Kue sangat berguna dalam kasus ini .
Saya akan segera membuat reservasi agar artikel ini tidak langsung mendorong Anda untuk menggunakan Cake , seperti yang saya lakukan, dan banyak rekan saya tidak diarahkan oleh artikel yang keluar sebelumnya. Terutama karena tidak masuk akal untuk beralih ke proyek yang tidak merugikan dan bekerja secara konsisten. Kumpulkan di Jenkins favorit Anda dan semuanya berjalan dengan baik. Tapi setelah artikel ini, biarlah di kepala saya bahwa Cake itu ada. Sekali lagi, dia belum pergi kemana-mana, dia sudah tahu banyak dan semakin mudah untuk bekerja dengannya. Jauh lebih mudah dari sebelumnya.
Seperti apa Kue itu? Mungkin, setiap developer yang tidak terperosok di dunia .Net akan menemukan analoginya: gradle, gulp, golang make . Membuat sistem bukanlah wahyu di tahun 2020. Itu selalu nyaman, yang artinya perlu dan benar. Dunia .Net telah lama kehilangan sarana seperti itu. Sebenarnya, ada dan masih ada MSBuild , tetapi memiliki banyak kekurangan. Yang utama adalah siapa yang tahu cara menggunakannya dari pengembang biasa? Dan apa kemanfaatan perkembangannya? Beberapa hal dasar dan perlu untuk semua orang jelas lebih mudah dilakukan di server build. Mungkin, ini nyaman untuk seseorang, tetapi saya yakin sebagian besar komunitas akan lebih memilih MSBuild untuk menguasai server build baru. Tulis konfigurasi sekali dan lupakan seperti mimpi buruk.
Bagaimana jika ada sistem make dengan DSL di C #, pelengkapan otomatis dan fitur lain dari bahasa yang diketik? Ya, saya sedang berbicara tentang Cake . Secara khusus, sekarang kita akan berbicara tentang library Cake.Frosting , yang merupakan salah satu runner dari sistem make.
Anda dapat membaca lebih lanjut tentang pelari yang tersedia di sini: Pelari Kue
Dengan Frosting, semuanya menjadi akrab - Api yang mendokumentasikan sendiri yang hampir segera Anda temukan bahasa yang sama. Metode ekstensi dimuat dari Nuget - untuk setiap kesempatan, struktur proyek seperti campuran pengujian atau tolok ukur dan host Asp . Semua keputusan ditebak sekaligus, semuanya ada di rumah.
Frosting Cake , , , solution . . , Cake.Frosting, Build- .
dotnet run
, . - Mac OS, Linux Windows, SDK, . dotnet CLI, .
, , . โ Lifetime: Setup TearDown. .
โ Tasks. - FrostingTask<Context>.
IoC , Asp. , Frosting DI IServiceCollection, .
- . , Default. , , ,
[Dependency(typeof(MyPreviousTask))]
MyPreviousTask โ , .
, :
.
.
unit-.
Publish.
.
, docker, โ , C#.
, , , , . , , . .
โ IntelliSense , ?
.Net core โ self-contained . , , dotnet, , , , ยซ ยป. , - . Cake.
, , TS Jenkins
dotnet run ./Build/Build.csproj
( ) , . Frosting , -, .
, . - dotnet Frosting. , โ .
โ .
. / -;
. -. -.
. . .
. - -, , . .
. IntelliSense, , senior.
Masalahnya adalah kurangnya integrasi yang diperlukan dalam Cake dengan linters, sonar, dll. Masalah ini harus diklarifikasi sebelum menggunakan sistem. Atau tambahkan ekstensi Anda, unggah ke Nuget dan jadilah orang yang sangat, sangat baik.
Bonus - contoh penggunaan Cake.Frosting di github . Untuk "benih" bisa dikatakan: Link
Tautan ke situs proyek Cake