JavaRush /Blog Jawa /Random-JV /Kita nulis proyek. Tambah SpringBoot lan atur proses CI -...

Kita nulis proyek. Tambah SpringBoot lan atur proses CI - "proyek Java saka A nganti Z"

Diterbitake ing grup
Artikel saka seri babagan nggawe proyek Jawa (pranala menyang materi liyane ana ing pungkasan). Tujuane kanggo nganalisa teknologi utama, asile nulis bot telegram. Sugeng rawuh, para maos ingkang minulya. Kaya sing diterangake ing bagean sadurunge , kita bakal pindhah miturut rencana. Kita wis nggawe proyek lan wektune kanggo ngisi kode. Saiki kabeh masalah bakal ditambahake minangka komitmen sing kapisah. Aku bakal njlèntrèhaké kabeh sing perlu kene. Yen aku kantun soko utawa ora njlèntrèhaké cukup cetha, takon ing komentar, aku bakal nyoba kanggo njawab."Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 1

Kita nulis JRTB-0M

Ing tugas iki kita kudu nambah framework SpringBoot kosong kanggo karya mangsa. Kita bakal nindakake iki kanthi cara sing padha kaya ing artikel babagan SpringBoot + Flyway . Download proyek kasebut , bukak ing IDEA lan gawe cabang anyar sing diarani JRTB-0 . Aku diterangake carane nindakake iki liwat idea kene . Iki bakal nggampangake kita nglacak karya ing mangsa ngarep. "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 2Apa sampeyan wis ngerti yen ora ana cabang master maneh ? Saiki diarani netral - utama . Dadi kita wis biasa. Sanajan, jujur, kita bisa ngganti jeneng kasebut dadi master. Kita menyang Spring Initializr lan nggawe kerangka SpringBoot kanggo bot kita. "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 3Saiki, versi paling enom saka boot sprint sing ditawakake yaiku 2.3.7, ayo njupuk. Aku bakal njlèntrèhaké setelan ing ngisor iki kanthi kapisah:
  • Project: Maven Project - kita wis rembugan Maven kene lan kene . Mulane, aku bakal njlèntrèhaké mung apa aku ora mbukak ing artikel sadurunge. Yen ana "bintik putih", mesthi)
  • Basa: Jawa - kabeh wis jelas ing kene. Yen ana kepinginan, kita bisa nulis maneh perkara iki ing Kotlin. Aku mung tuku dhewe buku Kotlin in Action, kita bakal sinau Kotlin bebarengan))
  • Spring Boot: 2.3.7 - kita njupuk versi paling cilik sing ditawakake kanggo ngilangi masalah. Iki wis versi modern saka boot.
Metadata Proyek:
  • Grup: com.github.javarushcommunity - ing kene kita milih domain sing dadi host grup repositori.
  • Artefak: javarush-telegrambot - deskripsi maksimal proyek kasebut.
  • Jeneng: Javarush TelegramBot - kita bakal nulis kanthi lengkap ing kene.
  • Katrangan: Telegram bot kanggo Javarush saka komunitas menyang komunitas - ing kene ana katrangan sing luwih rinci babagan proyek kasebut.
  • Jeneng paket: com.github.javarushcommunity.jrtb - ing kene sampeyan wis bisa nggunakake singkatan kanggo jeneng proyek. Saiki proyek bakal diwiwiti karo paket iki. Kenapa akeh banget? Dadi yen kita nambahake proyek liyane menyang classpath, bakal ana ing paket sing beda. Saben ing cara unik dhewe. Iki penting kanggo njaga prinsip OOP.
  • Packaging: Jar minangka standar kita)
  • Jawa: 11 - kita bakal maju siji langkah. Aku ora mikir sing aku bakal nggunakake inovasi sawise Jawa kawolu, nanging supaya iku. Dheweke ora njaluk pangan) ... keputusan iki bakal menehi kita endhog Paskah cilik ing mangsa ngarep)
Kita ora bakal nambah dependensi kanggo saiki. Kita ora butuh iki kanggo tugas iki. Sawise ngisi kabeh iki, kita entuk (iki link menyang proyek sing digawe): "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 4Sawise ngisi, klik GENERATE lan tambahake kabeh internal ing arsip menyang proyek kita. "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 5Tambah file menyang project. Akibaté, kita duwe aplikasi. Kanggo mriksa apa wis nglumpuk ing kabeh, pindhah menyang terminal lan nulis: $ mvn paket resik"Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 6 Yen sampeyan duwe padha saka kene, kabeh iku ok: project wis nglumpuk, lan jarnik wis siap ing folder target. Ing wektu iki, tugas ing deskripsi wis siyap. Iku prasaja, ta? Mulane, kita tundhuk lan push menyang cabang kita: "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 7Kita nambahake jeneng tugas kita ing wiwitan deskripsi komitmen, supaya mengko bakal cetha ing kerangka tugas sing ditindakake. Klik Komit lan Push ... "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 8Sawise maneh kita mriksa lan mriksa apa persis sing arep kita push saka repositori lokal menyang remot lan, priksa manawa kabeh iku ok, klik Push . Apa langkah sabanjure? Miturut kabeh aturan (sing bisa diwaca ing artikel iki , ing bagean babagan aliran GitHub), sampeyan kudu nggawe panjalukan narik kanggo cabang utama lan ngenteni wong saka tim kanggo mriksa kode kasebut. Amarga aku dhewe, aku bakal nggawe panjalukan narik lan mriksa maneh kabeh. Aku menyang kaca gudang, lan Github wis ngerti yen kita duwe tambahan lan nawakake kanggo nggawe panjalukan narik: "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 9Ora ana alangan kanggo patriot (c) - kita nggawe minangka disaranake. Kita nyetel label sing padha, proyek kaya ing tugas sing lagi ditindakake, lan isi katrangan: "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 10Klik Nggawe panjalukan tarik .

Nggawe proses CI

We menyang request narik digawe: ing ngisor iki kita waca sing kita ora duwe Integrasi Terus-terusan dikonfigurasi (hereinafter - CI). "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 11Inggih, iku ora diatur, supaya apa? Napa kita butuh CI? Apa CI? Iki kira-kira dhaptar pitakonan sing kudu ana ing wektu iki. Umumé, CI minangka proses terus-terusan nggabungake kode dadi basis kode umum lan nglakokake proyek kasebut sadurunge. Sing diarani mbangun (saka basa Inggris mbangun). Saben-saben kita mbangun proyek, kita mesthekake yen proyek wis disusun, kabeh tes wis kasil liwati, plus sawise mbangun project, sampeyan bisa nambah autotests saka tester kanggo CI sing mbukak ing bangunan tartamtu. Kanthi cara iki, kita dadi luwih yakin manawa pangowahan anyar bisa ditindakake kaya sing dikarepake lan ora ngrusak fungsi sadurunge. CI uga apik amarga diwiwiti kanthi otomatis sawise nganyari basis kode. Yaiku, kita nyurung owah-owahan menyang cabang lan proses kasebut diwiwiti - perakitan, tes, tes otomatis lan langkah liyane. Yen salah sawijining langkah kasebut gagal, bangunan kasebut dianggep rusak lan ora bisa digabung dadi cabang utama. Iki persis apa sing bakal kita lakoni saiki: kita bakal nambah Tindakan GitHub, sing bakal mbukak kode kita sawise push. Tindakan GitHub cocog banget karo Aliran GitHub, mula kita bakal nggunakake aplikasi kasebut kanggo ngotomatisasi karya kita. Alat iki kuat banget lan gedhe, nanging saiki mung bakal digunakake kanggo mbangun lan mriksa manawa dipasang kaya sing dibutuhake. Kanggo ngaktifake, temokake tombol Tindakan ing kaca repositori lan tindakake: "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 12Temokake alur kerja Integrasi Terus-terusan sing dibutuhake: "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 13Klik Nggawe alur kerja iki. Sabanjure, kita ditawani nggunakake cithakan kasebut: kita setuju, ayo njlentrehake kabeh:
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven

name: Java CI with Maven

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK 1.8
      uses: actions/setup-java@v1
      with:
        java-version: 1.8
    - name: Build with Maven
      run: mvn -B package --file pom.xml
Iki nuduhake yen Tindakan GitHub diarani ing rong kasus:
  1. Nalika push digawe menyang cabang utama.
  2. Nalika panjalukan narik digawe ing cabang utama.
Bagean proyek nggambarake langkah-langkah sing bakal ditindakake. Kita mung duwe siji langkah - mbangun. Iki nuduhake yen proyek kita bakal diluncurake ing Ubuntu kanthi printah mvn -B package --file pom.xml . Iki persis apa sing ditindakake sacara lokal. Yen sampeyan pengin ngganti soko kene, mangga. Aku bakal nggunakake cithakan iki, iku bakal cukup kanggo kula. Aku klik Start commit , pilih create a new branch to configure the process and then Propose new file . Nanging proses mbangun ambruk ... "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 14Nalika sampeyan bisa ndeleng, Gagal sawise 14s - mbangun. Iku katon kaya soko kedaden: ayo pindhah menyang Déwan lan katon ing rincian: "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 15Ngandika sing aku ora bisa nemu memori kuwi. Kenging punapa? Ahhh, persis, persis! Amarga kita nggawe owah-owahan ing cabang master, nanging tugas kita durung ana. Lan mulane dheweke ora nemokake memori ... Mulane, saiki kita nindakake ing ngisor iki: kita nggabungake data iki menyang master, banjur gabungke cabang utama menyang JRTB-0, banjur kabeh kudu apik. Ing panyuwunan tarik kanthi owah-owahan tumindak github, klik Gabung panjalukan tarik : "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 16Lan baleni Konfirmasi gabung . Sabanjure, Github njaluk supaya kita mbusak cabang sing digunakake. Kita ora nolak lan mbusak: "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 17Sabanjure, aku ora nemokake ing panjalukan narik saka SpringBoot carane narik owah-owahan saka cabang utama saka website, supaya kita bakal nindakake kanthi manual liwat IDEA.

Langkah 1: Nganyari cabang master menyang repositori lokal.

Ide iki kanggo pindhah menyang cabang master, pencet ctrl + t lan nganyari cabang master:"Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 18

Langkah 2: Gabung pangowahan saka cabang master menyang cabang JRTB-0.

Ayo menyang JRTB-0 lan gabungke sing utama."Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 19

Langkah 3: push owah-owahan.

Pencet ctrl + shift + k lan konfirmasi push. Saiki kita ngenteni mbangun kanggo lulus lan bakal dadi ijo!)) Nanging abang maneh. Opo kuwi? Kita pindhah menyang log tumindak lan ndeleng manawa kita ora sinkron ing versi Jawa. Ing GitHubActions iku 8, nanging kita nggunakake 11: "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 20Saiki ana rong pilihan: salah siji mbenerake tumindak, utawa mudhun versi kanggo kawolu. Pilihan pisanan, misale jek kula, luwih apik lan luwih bener. Kita nggawe owah-owahan ing komitmen sing kapisah: kita ora bakal nggarap Java 8, nanging nganggo Java 11. "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Nambahake SpringBoot lan nyetel proses CI - 21Lan sawise iku, pungkasanipun, kabeh bisa kanggo kita, lan kita bisa nyetel proses CI kanggo proyek. Prekara-prekara kasebut kudu disiapake ing tahap wiwitan, supaya sampeyan ora kudu kuwatir mengko. Saiki sampeyan bisa ndeleng manawa bangunan wis liwati lan sampeyan bisa gabung tanpa wedi:"Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 22

Nggawe karya karo cabang ing repositori

Sampeyan uga bisa ngatur barang kasebut ing gudang minangka aturan nalika nggarap cabang. Aku pengin nggawe supaya cabang utama ora bisa di-push langsung, nanging mung liwat panjalukan narik, lan aku pengin nggawe supaya ora bisa nggabungake panjalukan narik yen mbangun gagal (yaiku, yen Tindakan GitHub gagal ing sawetara langkah). Kanggo nindakake iki, temokake tombol Setelan banjur pilih Cabang : "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 23Saiki ora ana aturan kanggo cabang, mula ayo nambah sing anyar liwat tombol Tambah aturan : "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Nambahake SpringBoot lan nyetel proses CI - 24Ana akeh setelan ing kene, lan kabeh wong bisa nindakake apa wae sing cocog karo dheweke. kabutuhan. Supaya mbangun bisa lolos ing panjalukan narik sadurunge nggabung, nambah kothak centhang kanggo Mbutuhake mriksa status kanggo pass sadurunge gabung lan pilih status kita kudu - mbangun. Cukup saiki: banjur sampeyan bisa nganyari setir iki lan ndeleng apa sing dikarepake. Klik Nggawe kanggo nggawe setir iki. "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Nambahake SpringBoot lan nyetel proses CI - 25Sabanjure, yen kita pindhah menyang panyuwunan narik maneh, kita bisa ndeleng manawa mriksa kita saiki ditandhani dibutuhake: "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 26Ayo mriksa kaca proyek kita, sing nampilake kabeh status tugas: "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 27Sampeyan bisa langsung ndeleng apa tugas sing lagi digarap. Kajaba iku, karya kasebut wis rampung, lan tugas kasebut ana ing status review kode.

Panutup JRTB-0

Saiki kita wis nyiapake panjalukan narik lan nggawe CI, kita kudu ngrampungake tahap pungkasan: nutup tugas kasebut, pindhah menyang status sing bener, deleng owah-owahan ing proyek kita ing papan. Panjaluk tarik kita siyap digabung dadi master. Ing panyuwunan tarik, klik tombol Panjaluk tarik Gabung : "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 28Sawise gabung sukses, sampeyan bisa mbusak, lan biasane nglakoni. Aku ora bakal nindakake iki kanggo nggampangake sampeyan ndeleng owah-owahan ing antarane cabang / komitmen. Sanalika panjalukan narik digabung, kanthi otomatis rampung ing papan proyek kita: "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Tambah SpringBoot lan konfigurasi proses CI - 29Langkah pungkasan yaiku nutup masalah (masalah) kanthi link menyang panyuwunan tarik sing ana: "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Nambahake SpringBoot lan nyetel proses CI - 30Masalah iki kanthi otomatis rampung ing papan. "Proyek Jawa saka A nganti Z": Kita nulis proyek.  Nambahake SpringBoot lan nyetel proses CI - 31Wiwitan wis digawe, tugas pisanan wis rampung!

kesimpulan

Katon yen kita wis wiwit kerja lan nulis kode, nanging setelan isih dibutuhake. Ya, butuh wektu, nanging bakal mbayar tikel satus nalika proyek dadi luwih gedhe lan luwih rumit lan sampeyan kudu njamin yen sampeyan ora mung ngilangi kabeh kanthi siji komitmen. Panjaluk narik ngendi iki kabeh kedaden kasedhiya kene . Mbok, nalika maca, iku wis ditutup. Ora medeni: kabeh informasi sing dibutuhake bakal disimpen liwat link. Matur nuwun kanggo kabeh sing wis maca, nganti ketemu. Luwih luwih!

Dhaptar kabeh materi ing seri kasebut ana ing wiwitan artikel iki.

Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION