TeamCity 2018.1: DSL Kotlin Baru, Mode Ketersediaan Tinggi, Integrasi Docker yang Disempurnakan, dan Amazon S3 Out of the Box

Halo, Habr! Kami baru-baru ini merilis versi baru dari TeamCity - 2018.1. Ini adalah rilis besar pertama dari server CI / CD kami tahun ini. Dan ada sesuatu untuk dilihat.

Daftar lengkap perubahan, seperti biasa, mengesankan . Namun di sini kita akan fokus pada empat fitur utama rilis. Ayo pergi!



TeamCity Kotlin DSL baru


TeamCity memiliki DSL sendiri (Bahasa Domain-Khusus), dengan mana Anda dapat menggambarkan pengaturan proyek dan membangun konfigurasi dalam kode Kotlin, mewujudkan prinsip-prinsip Infrastruktur sebagai Kode. Pada 2018.1, kami secara signifikan mengerjakan ulang format DSL ini, membuatnya lebih sederhana, lebih nyaman dan lebih fungsional.

Lebih mudah . Format DSL disederhanakan karena fakta bahwa TeamCity tidak lagi memerlukan server uuid dan ID proyek, ia belajar bagaimana menghasilkan mereka secara independen dari nama proyek dan membangun konfigurasi. Di sini, misalnya, adalah semua kode yang diperlukan untuk menggambarkan proyek "Hello world" sederhana di TeamCity:

version = "2018.1" project{ buildType(HelloWorld) } object HelloWorld : BuildType({ name = "Hellow world" steps { scriptContent = "echo 'Hello world!'" } }) 

File tunggal . Semua kode untuk menggambarkan pengaturan TeamCity sekarang disimpan dalam satu file - settings.kts, yang harus ditambahkan ke direktori .teamcity.

Portabilitas . Karena kode sekarang tidak memiliki ikatan ke server atau proyek tertentu, maka dapat digunakan kembali untuk instalasi atau proyek lain dalam server yang sama. Cukup salin settings.kts ke repositori yang sesuai.

Buat proyek dari URL . Agar TeamCity membaca dan menerapkan pengaturan dari kode, cukup dengan memberikan tautan ke repositori dengan .teamcity / settings.kts. Semua pengaturan yang dijelaskan akan dieksekusi secara otomatis.

Berikut ini adalah demo singkat dari fitur-fitur DSL Kotlin baru dari antonarhipov (dalam bahasa Inggris):


Ketersediaan Tinggi dan hanya baca


Pada 2018.1, menjadi mungkin untuk memulai server dalam mode baca-saja. Ini memungkinkan Anda untuk mengkonfigurasi cluster TeamCity yang sangat mudah diakses, terdiri dari dua server TeamCity: utama dan cadangan, bekerja dalam mode hanya baca. Dalam hal ini, server baca-saja akan memiliki akses baca ke database dan direktori data, dan akan terus memompa modifikasi data yang dilakukan oleh server utama. Jika server utama gagal, server read-only akan menerima semua permintaan. Penting untuk dipahami bahwa server baca-saja hanya akan dapat menampilkan status terakhir pada saat runtuhnya server utama, tetapi tidak akan mengizinkan keadaan ini untuk berubah.

Ini berlaku untuk instalasi besar, yang penting untuk memiliki akses tidak terputus ke server CI, baik selama kegagalan yang tidak direncanakan dan selama pembaruan yang dijadwalkan.

Dukungan Docker yang Ditingkatkan


Kami sebelumnya menulis tentang fakta bahwa TeamCity mendukung Docker "out of the box": meluncurkan build dalam wadah, membuat gambar Docker, menambahkan dan menghapusnya dari repositori, meluncurkan perintah Docker, menulis Docker.

Rilis ini menambahkan dukungan untuk .NET CLI dan Powershell runner, yang memungkinkan Anda untuk menyelesaikan langkah-langkah pembangunan ini di dalam wadah Docker.

Runner Docker sendiri juga telah diperbarui: secara native mendukung build, push, dan lainnya.

Bagaimana dukungan Docker bekerja di TeamCity, Anda dapat melihat di video ini:


Simpan artefak di Amazon S3


Plugin TeamCity AWS S3 telah ada selama beberapa waktu, tetapi dalam versi 2018.1 kami memperbaiki banyak masalah dan memasukkannya ke dalam distribusi utama. Integrasi S3 menangani artefak dependensi dan artefak pembersihan begitu elegan dan begitu terintegrasi ke dalam TeamCity UI sehingga pengguna yang tidak curiga mungkin tidak melihat bahwa artefak disimpan dalam ember S3.

Ini demo:


Perbaikan lainnya


Di antara peningkatan lainnya, perlu dicatat pekerjaan yang lebih nyaman dengan langkah-langkah perakitan yang diwarisi dari template. Secara khusus, sekarang mungkin untuk mengatur langkah-langkah pra dan posting dalam template dan menunjukkan bahwa langkah-langkah konfigurasi berada di antara mereka.


Versi baru ini juga meningkatkan kerja secara signifikan dengan umpan NuGet. Sekarang ini dapat diaktifkan pada tingkat proyek tertentu, dan tidak secara global di seluruh server, yang menyebabkan masalah kinerja di masa lalu. Akibatnya, beberapa umpan NuGet di berbagai proyek sekarang didukung.



Jika beberapa layanan Anda di jaringan berfungsi untuk sertifikat SSL yang tidak ditandatangani oleh otoritas terkenal, maka alih-alih proses impor sertifikat yang agak rumit ke server dan agen Java, Anda dapat mengunggahnya ke proyek server root melalui antarmuka web yang nyaman. Baik server dan agen akan segera mulai menggunakan sertifikat baru.

Baru-baru ini kami memiliki webinar, di mana antonarhipov menunjukkan semua tindakan di atas. Anda dapat melihatnya di entri:


Anda dapat mengunduh (juga berjalan di AWS, di Azure atau dari wadah Docker) versi terbaru dari TeamCity 2018.1 dari situs web kami. Tinggalkan komentar dan saran pada versi baru di pelacak bug kami.

Kami mengingatkan Anda bahwa TeamCity Professional menyediakan 100 build konfigurasi dan 3 build agen yang benar-benar gratis , tanpa batasan waktu dan fungsionalitas.
Selamat membangun!

Source: https://habr.com/ru/post/id416999/


All Articles