🔁 CI/CD va GitHub Actions
Kommitdan serverga - avtomatlashtirilgan quvur qurish bo'yicha 20 bosqichli qo'llanma
Darslik haqida
Git kodni saqlashni, Docker uni qadoqlashni o'rgatadi - CI/CD esa shu ikkisini bir-biriga ulaydi va hammasini avtomatlashtiradi. Ushbu darslikda siz uzluksiz integratsiya (CI) va uzluksiz yetkazishni (CD) noldan o'rganasiz: birinchi workflow fayli, hodisa va triggerlar, job va step, matritsali qurish, kesh, testlar va linter, artefaktlar, holat tekshiruvlari, sirlar va muhitlar, Docker obrazini qurib registry'ga yuborish, reliz va versiyalash, deploy strategiyalari, serverga yetkazish va orqaga qaytarish, o'z runner'ingiz, GitLab CI bilan solishtirish hamda ta'minot zanjiri xavfsizligi. Barcha workflow fayllari tekshirilgan, buyruqlar haqiqatda ishga tushirilgan va natijalari shu yerda keltirilgan. Yakunida siz to'liq quvur quriasiz: har bir kommitda testlar ishlaydi, obraz quriladi va ilova serverga o'zi yetib boradi.
Darslik mundarijasi
- 1 CI/CD nima va u qayerdan paydo bo'ldi Uzluksiz integratsiya g'oyasi kim tomonidan va qanday sharoitda o'ylab topilgani, CI va CD farqi hamda avtomatlashtirish... 8 daq.
- 2 Birinchi workflow faylini yozish .github/workflows papkasi, eng sodda workflow fayli, uni ishga tushirish va jurnalni o'qish. 11 daq.
- 3 Hodisalar va triggerlar on kaliti, push va pull_request, tarmoq va yo'l filtrlari, jadval bo'yicha ishga tushirish va keraksiz ishlarni to'xtati... 11 daq.
- 4 Job, step va runner Joblar qanday parallel ishlaydi, needs bilan bog'lash, shartlar, muhit o'zgaruvchilari va qadamlar orasida ma'lumot uzat... 11 daq.
- 5 Matritsali qurish Bitta kodni bir nechta versiya va platformada sinash, include va exclude, fail-fast va parallellik chegarasi. 9 daq.
- 6 Kesh va quvur tezligi Bog'liqliklarni keshlash, kesh kaliti va restore-keys, nimani keshlash kerak emas va quvurni tezlashtirishning boshqa us... 9 daq.
- 7 Testlarni avtomatlashtirish CI qanday qilib yashil yoki qizil qaror qabul qiladi, chiqish kodi, testlarni bosqichlarga ajratish va beqaror testlar. 11 daq.
- 8 Linter va kod sifati Linterni quvurga ulash, formatlovchi bilan farqi, faqat o'zgargan fayllarni tekshirish va xatolarni PR ichida ko'rsatish... 10 daq.
- 9 Artefaktlar va qurish natijalari upload-artifact va download-artifact, joblar orasida fayl uzatish, saqlash muddati va artefakt bilan keshning farqi. 8 daq.
- 10 Holat tekshiruvlari va tarmoq himoyasi PR sahifasidagi tekshiruvlar, majburiy holatlar, tarmoq himoyasi qoidalari, bildirgichlar va CODEOWNERS. 8 daq.
- 11 Sirlar va muhitlar Secrets va variables farqi, muhitlar va tasdiqlash, sirlarning PR dagi chegaralari hamda OIDC bilan parolsiz ulanish. 10 daq.
- 12 Docker obrazini qurish va registry'ga yuborish Quvurda obraz qurish, GHCR ga yuborish, teglash qoidalari, qatlam keshi va ko'p platformali qurish. 10 daq.
- 13 Versiyalash va relizlar Semantik versiyalash, teg bo'yicha ishga tushadigan quvur, o'zgarishlar ro'yxatini yasash va GitHub Release chiqarish. 10 daq.
- 14 Deploy strategiyalari To'xtatib almashtirish, ketma-ket yangilash, ko'k-yashil va kanareyka usullari, ularning narxi va qachon tanlanishi. 8 daq.
- 15 Serverga yetkazish SSH kaliti bilan ulanish, rsync va Docker orqali chiqarish, deploy skriptini serverda saqlash va statik saytni nashr qil... 9 daq.
- 16 Orqaga qaytarish va xatolarga tayyorgarlik Rollback usullari, avtomatik qaytarish, deploy jurnali, xabarnomalar va tushgan quvurni tuzatish tartibi. 7 daq.
- 17 O'z runner'ingiz Self-hosted runner qachon kerak, uni o'rnatish, yorliqlar bilan tanlash, xizmat sifatida ishlatish va xavfsizlik qoidala... 11 daq.
- 18 GitLab CI bilan solishtirish Bir xil quvurning ikki vositadagi ko'rinishi, atamalar mosligi, Jenkins haqida qisqacha va vosita tanlash mezonlari. 7 daq.
- 19 Quvur xavfsizligi GITHUB_TOKEN ruxsatlari, amallarni xeshga qadash, bog'liqliklarni tekshirish, sir sizishi va ta'minot zanjiri hujumlari. 10 daq.
- 20 Amaliy loyiha - to'liq quvur Darslikdagi hamma narsani bitta loyihaga yig'amiz: tekshiruv, obraz, reliz va deploy - to'rtta workflow fayli. 7 daq.