Emva kokumjonga kancinci uHabr, ndothuswa kukuba ambalwa kakhulu amanqaku apapashiweyo ngesihloko se-GitHub's (beta) isici-Izenzo.
Kubonakala ngathi loo nto ingaphantsi inokuchazwa yinyaniso yokuba ukusebenza kusekho kuvavanyo, nangona "beta". Kodwa luphawu oluluncedo lwe-beta evumela esi sixhobo ukuba sisetyenziswe kwiindawo zokugcina zabucala. Kumalunga nokusebenza ngale teknoloji endiya kuthetha ngayo kweli nqaku.
Imbali
Ukuba siqala ngokulandelelana, ngoko kuyafaneleka ukuba sikhankanye ukuba kwinkqubo yokukhangela ukhetho olukhawulezayo, olulula, olulula nolukhululekileyo lokugcina i-website ethi "Mayelana nam", kwafuneka ndichithe ubusuku obuninzi kwaye ndidibanise amanqaku amaninzi.
Abanye abantu bakhetha ukusingathwa, abanye iseva yefu, kunye nabo bangafuni ukuqonda umsebenzi, ukusebenzisana kunye nentlawulo yazo zonke ezi ezifana nokulayisha iisayithi ezimileyo kwindawo yokugcina, ekubeni ngoku oku kunokwenziwa kuzo zombini iGitHub kunye neGitLab.
Kakade ke, olu lukhetho lomntu wonke.
Ukhetho lwam lokugqibela yaba ngamaphepha eGitHub.
Malunga namaphepha
Ngubani ongayaziyo gh-pages
- oku kukhetho lokugcina amaxwebhu ngendlela yewebhusayithi kwaye inikezelwa ngaphandle kwentlawulo, kwaye ngaphezu kwamaxwebhu, kucetywayo ukugcina iiwebhusayithi zomntu. Oku kusebenza kubonelelwa yi-GitHub kubo bonke abasebenzisi kwaye iyafumaneka kwiindawo zokugcina.
Uvimba weprojekthi usebenzisa isebe gh-pages
, kwindawo yomsebenzisi - indawo yokugcina eyahlukileyo enegama username.github.io
ngemithombo yesiza kwi master
isebe.
Ungabona iinkcukacha ezininzi CNAME
kunye negama lesizinda kunye nokucwangcisa iDNS yomboneleli wakho wendawo kwiiseva zeGitHub.
Ndiqinisekile ukuba kukho amanqaku amaninzi apha malunga nendlela yokuphuhlisa indawo enjalo, ngoko ayisiyiyo le nto ndiza kuthetha ngayo.
Kuvela ingxaki
Ingxaki yayikukuba xa usebenzisa i-static generator, kukho imfuneko yokubhala izikripthi ezongezelelweyo kunye nokusebenzisa amathala eencwadi ukwenza lula inkqubo yokuvelisa amaphepha kunye nokuwalayisha kwindawo yokugcina. Ngokulula, ukuba ugcina imithombo kwindawo yogcino yabucala eyahlukileyo, ngoko ngalo lonke ixesha kukho naluphi na utshintsho kwisiza, bekuyimfuneko ukuhambisa imeko-bume yendawo kwisizukulwana esilandelayo samaphepha angatshintshiyo kunye nokupapashwa kwindawo ephambili yokugcina indawo.
Kukho intabalala
Kutshanje, mhlawumbi kwisaziso se-pop-up kwiwebhusayithi okanye kwincwadana yeendaba evela kwi-GitHub, i-CI / CD esanda kwakhiwa yaqatshelwa, eyavumela ukuba ezi zenzo zenziwe ngomzamo omncinci.
Malunga nabavelisi bephepha elingatshintshiyo
Andizi kujolisa ingqwalaselo eyodwa kulo mba, kodwa ndiza kwabelana ngeethisisi ezimbalwa endize kuzo ngexesha lokukhetha kunye nokusetyenziswa koku kulandelayo:
1) khetha ijeneretha ehambelana nolwimi lwakho lokuprograma, okanye enye ecacileyo ngokusemandleni. Ndifike kule ngcamango ngexesha apho mna ngokwam kufuneka ndongeze ukusebenza kwesiza ukuba sisebenze, ndongeza iintonga zokuzinza okukhulu kunye nokuzenzekelayo. Ukongeza, esi sizathu esihle sokubhala umsebenzi owongezelelweyo ngokwakho ngendlela yeeplagi;
2) yeyiphi ijenereyitha onokuyikhetha lukhetho lomntu, kodwa kufanelekile ukuqwalasela ukuba kuntywiliselo lokuqala kumsebenzi weGitHub Pages ukusebenza, kufuneka uqale ufakele.
Ukhetho lwam lwejeneretha lusekwe kwinqaku lokuqala.
__
Џџ ѕЃ ° °
Umsebenzi ophambili uya kuba kukubhala iscript (eneneni ifayile yoqwalaselo) eya kuthi ivelise ngokuzenzekelayo amaphepha angatshintshiyo ukusuka kwindawo yokugcina yabucala. Isisombululo siya kubandakanya ukusebenza kwendawo ebonakalayo. Isikripthi ngokwaso siyakongeza amaphepha asele enziwe kwindawo yokugcina uluntu.
Izixhobo zesisombululo
Izixhobo esiya kuzisebenzisa ukusombulula ingxaki:
- Iintshukumo zeGitHub;
- iPython3.7;
- iPelican;
- iGit;
- Amaphepha eGitHub.
Uluhlu lweengxaki
Ngoko ke, emva kokuqhelana namaxwebhu kunye nokuqonda indlela izikripthi zeZenzo ezibhalwe ngayo, kwacaca ukuba le ndlela iya kusombulula ngokupheleleyo ingxaki ethe yavela. Ngexesha lokubhala, kufuneka ubhalise ukuze usebenzise lo msebenzi.
Inkcazo yomsebenzi omtsha nguGithub ngokwayo
Ukubhala i-Actions scripts kuqala ngokwenza ifayile enegama kwifolda .github
kunye nesiqulathi seefayili zayo workflows
. Oku kunokwenziwa ngesandla okanye kumhleli kwi-Actions tab kwiphepha logcino.
Umzekelo wefom yeskripthi esingenanto
Ndiza kuphawula ngokufutshane malunga nefom
name: CI # название скрипта: будет отображаться во вкладке Actions
on: [push] # действие, по которому запускается данный скрипт
jobs: # роботы, которые будут выполняться
build: # сборка, которая..
runs-on: ubuntu-latest # ..будет запущена на основе этого образа
steps: # шаги которые будут проделаны после запуска образа
- uses: actions/checkout@v1 # переход в самую актуальную ветку
- name: Run a one-line script # имя работы номер 1
run: echo Hello, world! # суть работы номер 1 (bash-команда записана в одну строку)
- name: Run a multi-line script # имя работы номер 2
run: | # суть работы номер 2 (многострочная)
echo Add other actions to build,
echo test, and deploy your project.
Masibhale eyethu ngokusekwe kwithempleyithi:
0) Unako kwakhona ukushiya igama "CI". Ngumcimbi wokungcamla.
I-1) Okulandelayo, kufuneka ukhethe isenzo / i-trigger eya kusungula iskripthi, kwimeko yethu oku kutyhala okuqhelekileyo kokuzibophelela okutsha kwindawo yokugcina.
on:
push
2) Kwakhona siya kushiya umfanekiso ngesiseko apho iskripthi siya kuqaliswa njengomzekelo, kuba Ubuntu banelisekile ngokusebenza okuyimfuneko. Ejonge e
build:
runs-on: ubuntu-latest
3) Kumanyathelo, siya kuqala simise indawo yokusingqongileyo ukulungiselela umsebenzi oyintloko.
3.1) yiya kwisebe esilidingayo (inyathelo eliqhelekileyo checkout
):
- uses: actions/checkout@v1
3.2) faka iPython:
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: 3.7
3.3) faka izinto ezixhomekeke kwijenereyitha yethu:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
3.4) yenza uluhlu apho amaphepha esayithi aya kuveliswa:
- name: Make output folder
run: mkdir output
4) Ukuze umsebenzi kwisayithi uhambelane, oko kukuthi, ukungacimi utshintsho lwangaphambili kunye nokukwazi ukongeza utshintsho kwindawo yokugcina indawo ngaphandle kweengxabano, inyathelo elilandelayo liya kuba kukudibanisa indawo yokugcina indawo ngexesha ngalinye:
- name: Clone master branch
run: git clone "https://${{ secrets.ACCESS_TOKEN }}@github.com/${GITHUB_ACTOR}/${GITHUB_ACTOR}.github.io.git" --branch master --single-branch ./output
Eli nyathelo libiza inkqubo eguquguqukayo:
- iyaguquguquka
GITHUB_ACTOR
I-GitHub iyazihlohla, kwaye eli ligama lomsebenzisi eliye laphehlelelwa ngempazamo esi script; - iyaguquguquka
secrets.ACCESS_TOKEN
oku kwenziwauphawu lolawulo lweGithub , singayidlulisa njengotshintsho lwemeko-bume ngokuyicwangcisa kwisithubaSecrets
izicwangciso zethu zokugcina. Nceda uqaphele ukuba ngexesha lesizukulwana ithokheni iya kubonelelwa kuthi kube kanye, akusayi kuphinda kubekho ukufikelela kuyo. Kunye namaxabiso ezinto zeMfihlo.
5) Masiqhubele phambili ekuveliseni amaphepha ethu:
- name: Generate static pages
run: pelican content -o output -s publishconf.py
Iiparamitha ezigqithiselwe kumenzi zinoxanduva lolawulo apho iifayile ezenziweyo ziya kuthunyelwa (-o output
) kunye nefayile yoqwalaselo esiyisebenzisayo ukwenza (-s publishconf.py
; Unokufunda malunga nendlela yokwahlula uqwalaselo lwendawo kunye noqwalaselo lopapasho kuxwebhu lwePelican.).
Makhe ndikukhumbuze okukwifolda yethu output
Uvimba wesiza sele wenziwe umboniso.
6) Masiseke i-git kwaye sibonise iifayile zethu ezitshintshileyo:
- name: Set git config and add changes
run: |
git config --global user.email "${GITHUB_ACTOR}@https://users.noreply.github.com/"
git config --global user.name "${GITHUB_ACTOR}"
git add --all
working-directory: ./output
Ngeli xesha, i-variable esele eyaziwayo isetyenzisiweyo kwaye i-directory yokusebenza ibonakalisiwe apho imiyalelo evela kweli nyathelo iya kuqaliswa. Umyalelo wokuya kulawulo olusebenzayo ngenye indlela uya kujongeka ngathi - cd output
.
7) Masenze umyalezo wokuzibophelela, senze utshintsho kwaye silutyhalele kwindawo yokugcina. Ukuze ukuzibophelela akulolize kwaye ke akuvelisi mpazamo kwi-bash (isiphumo esiphumayo asikho 0
) — okokuqala, makhe sijonge ukuba kuyimfuneko na ukuzibophelela nokutyhala into ethile konke konke. Ukwenza oku sisebenzisa umyalelo git diff-index --quiet --cached HEAD --
eya kuvelisa kwi-terminal 0
ukuba akukho lutshintsho malunga noguqulelo lwangaphambili lwesiza, kwaye 1
kukho utshintsho olunjalo. Emva koko siqhuba isiphumo salo myalelo. Ngaloo ndlela, kulwazi malunga nokwenziwa kweskripthi, siya kurekhoda ulwazi oluluncedo malunga nemeko yesayithi kweli nqanaba, endaweni yokuphazamiseka ngokuzenzekelayo kwaye usithumelele ingxelo malunga nokuphahlazeka kweskripthi.
Sikwaqhuba ezi ntshukumo kuluhlu lwethu kunye namaphepha enziwe sele elungile.
- 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
Isiphumo
Ngenxa yoko, iskripthi esinjalo sikuvumela ukuba ungacingi ngokudala amaphepha amileyo. Ngokongeza utshintsho ngokuthe ngqo kwindawo yokugcina yangasese, nokuba kukusebenza kunye ne-git kuyo nayiphi na inkqubo okanye ukudala ifayile nge-interface yewebhu ye-GitHub, iintshukumo ziya kwenza yonke into ngokwazo. Ukuba iskripthi siyawa ngokungalindelekanga, isaziso siya kuthunyelwa kwi-imeyile yakho.
Ikhowudi epheleleyo
Ndiza kuyishiya inguqulelo yam yokusebenza, apho inyathelo lokugqibela longeza ukuthumela isaziso sokuba ukuzibophelela kutyhalelwe kwindawo yokugcina.
Iimfihlo ezichazwe ngasentla zisetyenzisiweyo, apho ithokheni ye-bot kunye ne-ID yomsebenzisi ekufuneka umyalezo uthunyelwe kuyo yongezwa.
name: Push content to the user's GitHub pages repository
on:
push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Make output folder
run: mkdir output
- name: Clone master branch
run: git clone "https://${{ secrets.ACCESS_TOKEN }}@github.com/${GITHUB_ACTOR}/${GITHUB_ACTOR}.github.io.git" --branch master --single-branch ./output
- name: Generate static pages
run: pelican content -o output -s publishconf.py
- name: Set git config and add changes
run: |
git config --global user.email "${GITHUB_ACTOR}@https://users.noreply.github.com/"
git config --global user.name "${GITHUB_ACTOR}"
git add --all
working-directory: ./output
- 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
git commit -m "${COMMIT_MESSAGE}"
git push https://${{ secrets.ACCESS_TOKEN }}@github.com/${GITHUB_ACTOR}/${GITHUB_ACTOR}.github.io.git master
curl "https://api.telegram.org/bot${{ secrets.BOT_TOKEN }}/sendMessage?text=$COMMIT_MESSAGE %0ALook at ${GITHUB_ACTOR}.github.io %0ARepository%3A github.com/${GITHUB_ACTOR}/${GITHUB_ACTOR}.github.io&chat_id=${{ secrets.ADMIN_ID }}"
working-directory: ./output
Izikrini
Isiphumo solunye lwemitsi eboniswe kwi-Actions tab yendawo yokugcina
Umyalezo osuka kwibhot malunga nokugqitywa kweskripthi
amakhonkco aluncedo
umthombo: www.habr.com