Ngemva kokumhlola kancane u-Habr, ngamangala ukuthi zimbalwa kakhulu izindatshana ezishicilelwe esihlokweni sesici sika-GitHub's (beta) - Izenzo.
Kungase kubonakale sengathi lokho kuchaza kancane kungachazwa ngokuthi ukusebenza kusahlolwa, nakuba "i-beta". Kodwa isici esiwusizo se-beta esivumela leli thuluzi ukuthi lisetshenziswe ezindaweni zokugcina eziyimfihlo. Mayelana nokusebenza nalobu buchwepheshe engizokhuluma ngabo kulesi sihloko.
Umlando wangaphambili
Uma siqala ngokulandelana, khona-ke kuhle ukusho ukuthi ngesikhathi sokufuna inketho esheshayo, elula, elula futhi yamahhala yokugcina iwebhusayithi yomuntu siqu ethi "Mayelana Nami", kwadingeka ngichithe ubusuku obuningana futhi ngihlanganise izihloko eziningi.
Abanye abantu bakhetha ukusingathwa, abanye iseva yefu, nalabo abangafuni ukuqonda umsebenzi, ukusebenzisana kanye nenkokhelo yakho konke lokhu njengokulayisha amasayithi amile endaweni yokugcina, kusukela manje lokhu kungenziwa kokubili i-GitHub ne-GitLab.
Yiqiniso, lokhu kuyisinqumo sawo wonke umuntu.
Ukukhetha kwami kokugcina bekuyi-GitHub Pages.
Mayelana Namakhasi
Ubani ongazi gh-pages
- lena inketho yokugcina imibhalo ngendlela yewebhusayithi futhi inikezwa mahhala, futhi ngaphezu kwemibhalo, kuhlongozwa nokuthi kugcinwe amawebhusayithi omuntu. Lokhu kusebenza kunikezwa i-GitHub kubo bonke abasebenzisi futhi kuyatholakala kuzilungiselelo zekhosombe.
Inqolobane yephrojekthi isebenzisa igatsha gh-pages
, kusayithi lomsebenzisi - indawo yokugcina ehlukile enegama username.github.io
ngemithombo yesayithi ku master
igatsha.
Ungabona imininingwane eyengeziwe CNAME
ngegama lesizinda nokusetha i-DNS yomhlinzeki wakho wesizinda kumaseva e-GitHub.
Nginesiqiniseko sokuthi ziningi izindatshana lapha ezimayelana nendlela yokuthuthukisa isiza esinjalo, ngakho-ke akukhona lokho engisazokhuluma ngakho ngokuqhubekayo.
Inkinga iyavela
Inkinga yayiwukuthi lapho usebenzisa ijeneretha emile, kunesidingo sokubhala imibhalo eyengeziwe nokusebenzisa imitapo yolwazi ukuze kube lula inqubo yokukhiqiza amakhasi nokuwalayisha endaweni yokugcina. Kalula nje, uma ugcina imithombo endaweni yokugcina eyimfihlo ehlukile, khona-ke ngaso sonke isikhathi lapho kukhona noma yiluphi ushintsho esizeni, bekudingeka ukuthi kusetshenziswe indawo yendawo ukuze kusungulwe amakhasi amile kanye nokushicilelwa endaweni eyinhloko yendawo yokugcina.
Kukhona inala
Muva nje, kungaba kusaziso se-pop-up kuwebhusayithi noma ku-newsletter evela ku-GitHub, kuqashelwe i-CI/CD esanda kwakhiwa, evumele lezi zenzo ukuthi zenziwe ngomzamo omncane.
Mayelana namajeneretha amakhasi amile
Ngeke ngigxilise ukunaka okukhethekile kule nto encanyana, kodwa ngizokwabelana ngemibono embalwa engifike kuyo ngesikhathi ngikhetha nokusebenzisa okulandelayo:
1) khetha ijeneretha evumelana nolimi lwakho lohlelo, noma ecace ngangokunokwenzeka. Ngifike kulo mbono ngesikhathi lapho mina ngokwami kufanele ngengeze ukusebenza okuthile ukuze isayithi lisebenze, ngengeze izinduku zokuzinza ukuze libe nokuzinza okukhulu nokuzenzakalela. Ngaphezu kwalokho, lesi yisizathu esihle sokubhala ukusebenza okwengeziwe ngokwakho ngendlela yama-plugin;
2) iyiphi ijeneretha ongakhetha ukuyikhetha, kodwa kufanelekile ukucabangela ukuthi ukucwiliswa kokuqala emsebenzini wokusebenza kwamakhasi we-GitHub, kufanele uqale ufake
Ukukhetha kwami i-generator kusekelwe ephuzwini lokuqala.
__
Ukwakheka kwenkinga
Umsebenzi oyinhloko kuzoba ukubhala umbhalo (empeleni ifayela lokumisa) elizokhiqiza ngokuzenzakalelayo amakhasi amile asuka endaweni yokugcina eyimfihlo. Isixazululo sizobandakanya ukusebenza kwendawo ebonakalayo. Umbhalo ngokwawo uzongeza amakhasi enziwe ngomumo endaweni yokugcina yomphakathi.
Amathuluzi esixazululo
Amathuluzi esizowasebenzisa ukuxazulula inkinga:
- Izenzo ze-GitHub;
- I-Python 3.7;
- I-Pelican;
- I-Git;
- Amakhasi we-GitHub.
Ukuxazulula izinkinga
Ngakho-ke, ngemva kokujwayelana nemibhalo kancane nokuqonda ukuthi imibhalo yezenzo ibhalwe kanjani, kwacaca ukuthi le nqubo izoxazulula ngokuphelele inkinga ekhona. Ngesikhathi sokubhala, kufanele ubhalise ukuze usebenzise lolu hlelo lokusebenza.
Incazelo yokusebenza okusha kwe-Github ngokwayo
Ukubhala iskripthi Sezenzo kuqala ngokwakha ifayela elinegama kufolda .github
kanye nefolda yayo engaphansi workflows
. Lokhu kungenziwa ngokwenza noma kumhleli kuthebhu ethi Izenzo ekhasini lenqolobane.
Isibonelo sefomu lesikripthi esingenalutho
Ngizophawula kafushane ngefomu
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 ezethu ngokusekelwe kusifanekiso:
0) Ungakwazi futhi ukushiya igama elithi "CI". Kuyindaba yokunambitha.
1) Okulandelayo, udinga ukukhetha isenzo/i-trigger ezokwethula iskripthi, kithina lokhu ukucindezela okujwayelekile kokuzibophezela okusha endaweni yokugcina.
on:
push
2) Sizophinde sishiye isithombe ngesisekelo lapho iskripthi sizokwethulwa njengesibonelo, njengoba Ubuntu benelisekile ngokusebenza okudingekayo. Bukela i
build:
runs-on: ubuntu-latest
3) Ezinyathelweni, sizoqala simise imvelo ukuze silungiselele umsebenzi oyinhloko.
3.1) iya egatsheni esilidingayo (isinyathelo esijwayelekile 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 ukuncika kwejeneretha yethu:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
3.4) dala uhla lwemibhalo lapho amakhasi esayithi azokhiqizwa khona:
- name: Make output folder
run: mkdir output
4) Ukuze umsebenzi esakhiweni uhambisane, okungukuthi, ukungasusi izinguquko zangaphambilini futhi ukwazi ukwengeza izinguquko endaweni yesikhombi ngaphandle kwezingxabano, isinyathelo esilandelayo kuzoba ukuhlanganisa inqolobane yesayithi isikhathi ngasinye:
- 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
Lesi sinyathelo sibiza okuguquguqukayo kwesistimu:
- okuguquguqukayo
GITHUB_ACTOR
I-GitHub iyazifaka yona, futhi leli igama lomsebenzisi okuye kwaqaliswa ngalo iphutha lesi script; - okuguquguqukayo
secrets.ACCESS_TOKEN
lokhu kukhiqizwaithokheni yokuphatha i-Github , singayidlulisela njengokuguquguquka kwendawo ngokuyibeka kuthebhuSecrets
izilungiselelo zethu zokugcina. Sicela uqaphele ukuthi ngesikhathi sokukhiqiza ithokheni izohlinzekwa kithi kanye, ngeke kusaba khona ukufinyelela kulo. Kanye namanani wezinto Eziyimfihlo.
5) Masiqhubekele phambili ekukhiqizeni amakhasi ethu:
- name: Generate static pages
run: pelican content -o output -s publishconf.py
Amapharamitha adluliselwe kujeneretha anesibopho senkomba lapho amafayela akhiqiziwe azothunyelwa khona (-o output
) kanye nefayela lokumisa esilisebenzisayo ukwenza (-s publishconf.py
; Ungafunda mayelana nendlela yokuhlukanisa ukucushwa kwendawo kanye nokuhlelwa kokushicilelwa kumadokhumenti e-Pelican.).
Ake ngikukhumbuze okukufolda yethu output
Inqolobane yesayithi isivele yenziwe yakhiwe.
6) Masimise i-git bese sikhomba amafayela ethu ashintshiwe:
- 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
Kuleli qophelo, okuguquguqukayo osekwaziwa kakade kuyasetshenziswa futhi uhla lwemibhalo olusebenzayo lukhonjisiwe lapho kuzokwethulwa khona imiyalo evela kulesi sinyathelo. Umyalo wokuya kumkhombandlela osebenzayo ubungabukeka sengathi - cd output
.
7) Ake sikhiqize umlayezo wokuzibophezela, senze izinguquko futhi sizifake endaweni yokugcina. Ukuze ukuzinikela akulona ize ngakho-ke akukhiqizi iphutha ku-bash (umphumela wokuphuma awukho 0
) — okokuqala, ake sihlole ukuthi kudingekile yini ukuzibophezela nokuphusha okuthile. Ukwenza lokhu sisebenzisa umyalo git diff-index --quiet --cached HEAD --
ezophuma kutheminali 0
uma zingekho izinguquko ezihlobene nenguqulo yangaphambilini yesayithi, futhi 1
zikhona izinguquko ezinjalo. Bese sicubungula umphumela walo myalo. Ngakho-ke, olwazini olumayelana nokukhishwa kweskripthi, sizorekhoda ulwazi oluwusizo mayelana nesimo sesayithi kulesi sigaba, esikhundleni sokuphahlazeka ngokuzenzakalelayo futhi sithumele umbiko mayelana nokuphahlazeka kweskripthi.
Siphinde senza lezi zenzo kunkomba yethu ngamakhasi enziwe ngomumo.
- 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
Umphumela
Ngenxa yalokho, iskripthi esinjalo sikuvumela ukuthi ungacabangi ngokudala amakhasi amile. Ngokungeza izinguquko ngqo endaweni yokugcina yangasese, kungakhathaliseki ukuthi ngokusebenza ne-git kunoma iyiphi isistimu noma ngokudala ifayela ngokusebenzisa isixhumi esibonakalayo sewebhu ye-GitHub, Izenzo zizokwenza yonke into ngokwazo. Uma umbhalo uphahlazeka kungazelelwe, isaziso sizothunyelwa ku-imeyili yakho.
Ikhodi egcwele
Ngizoshiya inguqulo yami yokusebenza, lapho isinyathelo sokugcina sengeza ukuthumela isaziso sokuthi isivumelwano siphushelwe endaweni yokugcina enkulu.
Izimfihlo ezichazwe ngenhla zisetshenziswa, lapho ithokheni ye-bot kanye ne-ID yomsebenzisi okumele umlayezo uthunyelwe kuyo yengezwe.
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
Izithombe-skrini
Umphumela wokukodwa kokuqalisa oboniswe kuthebhu ethi Izenzo yekhosombe lomthombo
Umlayezo ovela ku-bot mayelana nokuqedwa kombhalo
Izixhumanisi eziwusizo
Source: www.habr.com