ProHoster > ΠΠ»ΠΎΠ³ > Kev tswj hwm > GitHub Kev Ua raws li CI / CD rau qhov chaw ntawm lub tshuab hluav taws xob zoo li qub thiab GitHub Nplooj ntawv
GitHub Kev Ua raws li CI / CD rau qhov chaw ntawm lub tshuab hluav taws xob zoo li qub thiab GitHub Nplooj ntawv
Tau scoured Habr me ntsis, Kuv xav tsis thoob tias ob peb tsab xov xwm tau tshaj tawm rau lub ntsiab lus ntawm GitHub's (beta) feature - Kev Ua.
Nws yuav zoo li tias cov lus tsis txaus ntseeg no tuaj yeem piav qhia los ntawm qhov tseeb tias kev ua haujlwm tseem nyob hauv kev sim, txawm tias "beta". Tab sis nws yog qhov muaj txiaj ntsig zoo ntawm beta uas tso cai rau cov cuab yeej no siv rau hauv cov chaw khaws khoom ntiag tug. Nws yog hais txog kev ua haujlwm nrog cov thev naus laus zis no uas kuv yuav tham txog hauv kab lus no.
Ua ntej keeb kwm
Yog hais tias peb pib nyob rau hauv kev txiav txim, ces tej zaum nws yog tsim nyog hais tias nyob rau hauv tus txheej txheem ntawm kev tshawb nrhiav rau ib tug ceev, yooj yim, yooj yim thiab dawb kev xaiv rau khaws cia ib tug tus kheej lub website "Hais txog kuv", kuv yuav tsum tau siv ob peb hmos thiab zuag los ntawm ntau cov ntawv.
Qee tus neeg xaiv hosting, lwm tus huab server, thiab cov neeg uas tsis xav nkag siab txog kev ua haujlwm, kev sib cuam tshuam thiab kev them nyiaj rau txhua qhov no xws li uploading qhov chaw zoo li qub rau lub chaw cia khoom, txij li tam sim no qhov no tuaj yeem ua tiav ntawm GitHub thiab GitLab.
Tau kawg, qhov no yog txhua tus neeg xaiv tus kheej.
Kuv qhov kev xaiv kawg yog GitHub Nplooj ntawv.
Hais txog Nplooj
Leej twg tsis paub gh-pages - qhov no yog ib qho kev xaiv rau khaws cia cov ntaub ntawv nyob rau hauv daim ntawv ntawm ib lub website thiab nws yog muab dawb xwb, thiab ntxiv rau cov ntaub ntawv, nws kuj yog npaj los khaws cov websites ntawm tus kheej. Qhov kev ua haujlwm no yog muab los ntawm GitHub rau txhua tus neeg siv thiab muaj nyob hauv qhov chaw khaws cia.
Koj tuaj yeem pom cov ntsiab lus ntxiv hauv cov ntaub ntawv, tab sis cia kuv cia li nco ntsoov tias GitHub yog qhov xav tsis thoob hauv kev tso cai rau leej twg los txuas lawv tus kheej lub npe mus rau qhov chaw zoo li no los ntawm kev ntxiv cov ntaub ntawv. CNAME nrog lub npe sau npe thiab teeb tsa DNS ntawm koj tus kws kho mob sau npe ntawm GitHub servers.
Kuv paub tseeb tias muaj ntau cov lus ntawm no yuav ua li cas los tsim ib lub vev xaib, yog li ntawd tsis yog qhov kuv yuav tham ntxiv.
Teeb meem tshwm sim
Qhov teeb meem yog tias thaum siv lub tshuab hluav taws xob zoo li qub, yuav tsum tau sau cov ntawv sau ntxiv thiab siv cov tsev qiv ntawv kom yooj yim cov txheej txheem tsim cov nplooj ntawv thiab thauj lawv mus rau hauv qhov chaw cia khoom. Tsuas yog, yog tias koj khaws cov peev txheej hauv ib qho chaw khaws cia ntiag tug, tom qab ntawd txhua zaus muaj kev hloov pauv ntawm lub xaib, nws yog qhov tsim nyog yuav tsum xa cov cheeb tsam hauv zos rau cov tiam tom ntej ntawm nplooj ntawv zoo li qub thiab tshaj tawm hauv lub vev xaib tseem ceeb.
Muaj kev nplua nuj static generators thiab lawv txhua tus muaj teeb meem tib yam. Cov kev ua no siv sij hawm ntau dhau thiab siv zog, thiab thaum kawg ua haujlwm qeeb hauv qhov chaw, tshwj xeeb tshaj yog tom qab ob peb tsiv ntawm OS mus rau OS lossis teeb meem nrog cov ntaub ntawv poob ntawm hard drives. (qhov no yog rooj plaub hauv kuv rooj plaub).
Tsis ntev los no, nyob rau hauv ib qho kev ceeb toom pop-up ntawm lub vev xaib lossis hauv tsab ntawv xov xwm los ntawm GitHub, tau pom qhov tsim tshiab CI / CD, uas ua rau nws muaj peev xwm ua tau cov haujlwm no nrog kev siv zog tsawg.
Hais txog static page generators
Kuv yuav tsis tsom ntsoov rau qhov tshwj xeeb ntawm cov khoom no, tab sis kuv yuav qhia ob peb yam no uas kuv tuaj rau thaum xaiv thiab siv cov hauv qab no:
1) xaiv lub tshuab hluav taws xob uas haum rau koj cov lus programming, lossis ib qho uas meej npaum li qhov ua tau. Kuv tuaj rau lub tswv yim no ntawm ib lub sij hawm thaum kuv tus kheej yuav tsum tau ntxiv ib co functionality rau lub site mus ua hauj lwm, ntxiv crutches rau nws ntau dua stability thiab automation. Tsis tas li ntawd, qhov no yog qhov laj thawj zoo los sau cov haujlwm ntxiv ntawm koj tus kheej hauv daim ntawv ntawm plugins;
2) lub tshuab hluav taws xob twg los xaiv yog tus kheej xaiv, tab sis nws tsim nyog xav txog tias rau qhov pib nkag rau hauv kev ua haujlwm ntawm GitHub Nplooj ntawv ua haujlwm, koj yuav tsum xub nruab Jekyll. Hmoov zoo, nws tso cai rau koj los tsim lub vev xaib los ntawm cov chaw ncaj qha hauv qhov chaw cia khoom (Kuv yuav rov ua qhov no nrog kuv xaiv).
Lub luag haujlwm tseem ceeb yuav yog sau ib tsab ntawv (qhov tseeb yog cov ntaub ntawv teeb tsa) uas yuav cia li tsim cov nplooj ntawv zoo li qub los ntawm cov chaw khaws ntaub ntawv ntiag tug. Qhov kev daws teeb meem yuav koom nrog kev ua haujlwm ntawm ib puag ncig virtual. Tsab ntawv nws tus kheej yuav ntxiv cov nplooj ntawv npaj tau rau hauv cov chaw khaws ntaub ntawv pej xeem.
Cov cuab yeej rau kev daws teeb meem
Cov cuab yeej uas peb yuav siv los daws qhov teeb meem:
GitHub Kev Ua Haujlwm;
Python 3.7;
Pelican;
Git;
GitHub Nplooj ntawv.
Tshawb Fawb
Yog li, tom qab paub txog cov ntaub ntawv me ntsis thiab nkag siab tias cov ntawv sau ua haujlwm li cas, nws tau pom tseeb tias qhov txheej txheem no yuav daws tau qhov teeb meem uas tau tshwm sim. Thaum lub sijhawm sau ntawv, koj yuav tsum sau npe siv cov haujlwm no.rau kev kuaj beta!
Kev piav qhia ntawm kev ua haujlwm tshiab los ntawm Github nws tus kheej
Sau tsab ntawv ua haujlwm pib los ntawm kev tsim cov ntaub ntawv muaj npe hauv ib daim ntawv tais ceev tseg .github thiab nws subfolder workflows. Qhov no tuaj yeem ua tiav manually lossis los ntawm tus editor hauv Cov Haujlwm tab ntawm nplooj ntawv khaws cia.
Lub sijhawm no, ib qho kev hloov pauv uas twb paub lawm tau siv thiab cov npe ua haujlwm tau qhia nyob rau hauv uas cov lus txib los ntawm cov kauj ruam no yuav raug tso tawm. Cov lus txib kom mus rau cov npe ua haujlwm yuav zoo li - cd output.
7) Cia peb tsim cov lus cog lus, ua qhov kev hloov pauv thiab thawb lawv mus rau hauv qhov chaw cia khoom. Yog li hais tias qhov kev cog lus tsis nyob rau hauv vain thiab yog li ntawd tsis tsim ib qho yuam kev nyob rau hauv bash (qhov tso zis tshwm sim yog tsis. 0) - ua ntej, cia saib seb puas tsim nyog tau cog lus thiab thawb ib yam dab tsi txhua. Ua li no peb siv cov lus txib git diff-index --quiet --cached HEAD -- uas yuav tawm mus rau lub davhlau ya nyob twg 0 yog tias tsis muaj kev hloov pauv txheeb ze rau yav dhau los version ntawm lub xaib, thiab 1 muaj cov kev hloov no. Tom qab ntawd peb ua cov txiaj ntsig ntawm cov lus txib no. Yog li, hauv cov ntaub ntawv hais txog kev ua tiav ntawm tsab ntawv, peb yuav sau cov ntaub ntawv tseem ceeb ntawm lub xeev ntawm lub xaib ntawm theem no, tsis txhob cia li poob thiab xa peb tsab ntawv ceeb toom txog tsab ntawv poob.
Peb kuj ua cov haujlwm no hauv peb cov npe nrog cov nplooj ntawv npaj txhij.
- name: Push and send notification
run: |
COMMIT_MESSAGE="Update pages on $(date +'%Y-%m-%d %H:%M:%S')"
git diff-index --quiet --cached HEAD -- && echo "No changes!" && exit 0 || echo $COMMIT_MESSAGE
# Only if repo have changes
git commit -m "${COMMIT_MESSAGE}"
git push https://${{ secrets.ACCESS_TOKEN }}@github.com/${GITHUB_ACTOR}/${GITHUB_ACTOR}.github.io.git master
working-directory: ./output
tshwm sim
Yog li ntawd, cov ntawv zoo li no tso cai rau koj tsis txhob xav txog kev tsim cov nplooj ntawv zoo li qub. Los ntawm kev ntxiv cov kev hloov pauv ncaj qha mus rau qhov chaw khaws cia ntiag tug, txawm hais tias los ntawm kev ua haujlwm nrog git los ntawm txhua qhov system lossis tsim cov ntaub ntawv los ntawm GitHub web interface, Kev Ua Haujlwm yuav ua txhua yam lawv tus kheej. Yog tias tsab ntawv poob poob poob poob qis, ceeb toom yuav raug xa mus rau koj tus email.
Tag nrho cov cai
Kuv yuav tawm hauv kuv qhov kev ua haujlwm version, uas cov kauj ruam kawg ntxiv xa cov ntawv ceeb toom tias kev cog lus tau raug thawb mus rau qhov chaw cia khoom loj.
Cov lus piav qhia saum toj no yog siv, qhov twg tus bot token thiab tus neeg siv ID rau tus neeg xav tau xa cov lus ntxiv.