
Rehefa nandinika kely an'i Habr aho dia gaga aho fa vitsy dia vitsy ny lahatsoratra navoaka momba ny lohahevitry ny GitHub (beta) - Actions.
Toa azo hazavaina ny fanamaivanana toy izany amin'ny hoe mbola eo am-panadinana ny fiasa, na dia "beta" aza. Fa endri-javatra mahasoa amin'ny beta izay ahafahan'ity fitaovana ity ampiasaina amin'ny tahiry manokana. Mikasika ny fiaraha-miasa amin'ity teknolojia ity no horesahiko ato amin'ity lahatsoratra ity.
Taloha ny tantara
Raha manomboka amin'ny filaharana isika, dia azo lazaina angamba fa eo am-pikarohana safidy haingana, mora, mora ary maimaim-poana amin'ny fitehirizana tranokala "About Me" manokana, dia tsy maintsy nandany alina maromaro aho ary namakivaky lahatsoratra maro.
Ny olona sasany dia misafidy fampiantranoana, ny hafa mpizara rahona, ary ireo izay tsy te-hahatakatra ny asa, ny fifaneraserana ary ny fandoavam-bola amin'izany rehetra izany toy ny fandefasana tranokala static amin'ny tahiry iray, satria izao dia azo atao amin'ny GitHub sy GitLab.
Mazava ho azy fa safidin'ny tsirairay izany.
Ny safidiko farany dia ny GitHub Pages.
Momba ny Pejy
Iza no tsy mahalala gh-pages - safidy amin'ny fitehirizana antontan-taratasy amin'ny endrika tranokala ary omena maimaim-poana izany, ary ankoatra ny antontan-taratasy dia atolotra ihany koa ny hitahiry tranokala manokana. Ity fampiasa ity dia omen'ny GitHub ho an'ny mpampiasa rehetra ary azo alaina ao amin'ny toeran'ny tahiry.
Mampiasa sampana ny fitehirizana tetikasa gh-pages, ho an'ny tranokalan'ny mpampiasa - fitehirizana misaraka misy ny anarana username.github.io miaraka amin'ny loharanon-tranonkala ao master sampana.
Afaka mahita antsipiriany bebe kokoa ianao , fa avelao aho hanamarika fa ny GitHub dia tena malala-tanana amin'ny famelana ny olona rehetra hampifandray ny sehatra misy azy amin'ny tranokala toy izany amin'ny fampidirana rakitra fotsiny. CNAME miaraka amin'ny anaran'ny sehatra ary mametraka ny DNS an'ny mpamatsy sehatra anao amin'ny mpizara GitHub.
Azoko antoka fa misy lahatsoratra maro eto momba ny fomba fampivoarana tranokala toy izany, ka tsy izany no horesahiko bebe kokoa.
Rehefa misy olana mitranga
Ny olana dia rehefa mampiasa generator static dia ilaina ny manoratra script fanampiny ary mampiasa tranomboky mba hanatsorana ny fizotran'ny famoronana pejy sy hampidirana azy ireo ao anaty tahiry. Raha tsorina, raha mitahiry ireo loharano ao amin'ny tahiry manokana misaraka ianao, dia isaky ny misy fiovana eo amin'ny tranokala dia ilaina ny mametraka ny tontolo eo an-toerana ho an'ny taranaka manaraka ny pejy static sy ny famoahana ao amin'ny tranokala lehibe.
Misy be dia be ary samy manana olana mitovy. Mitaky fotoana sy ezaka be loatra ireo hetsika ireo, ary amin'ny farany dia mampiadana ny asa ao amin'ny tranokala, indrindra taorian'ny fifindra-monina maromaro avy amin'ny OS mankany amin'ny OS na tranga misy fahaverezan'ny angona amin'ny kapila mafy. (izany no nitranga tamin'ny raharahako).
Vao haingana, na tamin'ny fampandrenesana pop-up tao amin'ny tranokala na tao amin'ny gazetiboky avy amin'ny GitHub, dia nisy CI/CD vao naorina, izay nahafahana nanao ireo hetsika ireo tamin'ny ezaka kely.
Momba ireo mpamorona pejy static
Tsy hampifantoka ny saina manokana amin'ity singa ity aho, fa hizara teny roa izay tonga tamiko nandritra ny fifantenana sy ny fampiasana ireto manaraka ireto:
1) mifidiana mpamokatra izay mifanaraka amin'ny fiteny fandaharanao, na iray izay mazava araka izay azo atao. Tonga tamin'io hevitra io aho tamin'ny fotoana izay tsy maintsy nanampian'ny tenako ny fiasa sasany ho an'ny tranokala mba hiasana, manampy tehina ho an'ny fahamarinany sy ny automatique bebe kokoa. Ankoatra izany, antony tsara hanoratana fampiasa fanampiny amin'ny endrika plugins izany;
2) izay mpamokatra hofidiana dia safidy manokana, saingy tokony hojerena fa ho an'ny fampidirana voalohany amin'ny asan'ny fampiasa GitHub Pages dia tsy maintsy mametraka aloha ianao . Soa ihany fa mamela anao hamorona tranokala avy amin'ny loharano mivantana ao amin'ny tahiry (Averiko amin'ny safidiko ity).
Ny safidiko ny mpamokatra dia mifototra amin'ny teboka voalohany. izay voasoratra amin'ny Python dia nosoloana mora foana an'i Jekyll, izay vahiny amiko (ampiasaina efa ho herintaona). Vokatr'izany, na dia ny famoronana sy fanitsiana lahatsoratra ary ny fiasana amin'ny tranokala aza dia manome traikefa fanampiny amin'ny fiteny iray izay mahaliana ahy.
__
Fanambarana olana
Ny tena asa dia ny manoratra script (raha ny marina fisie fisie) izay mamorona pejy static avy amin'ny tahiry manokana. Ny vahaolana dia hampiditra ny fiasan'ny tontolo virtoaly. Ny script mihitsy dia hanampy pejy efa vita amin'ny tahiry ho an'ny daholobe.
Fitaovana ho an'ny vahaolana
Fitaovana ampiasaina hamahana ny olana:
- GitHub Actions;
- Python3.7;
- Pelican;
- Git;
- Pejy GitHub.
niresaka
Noho izany, rehefa avy nifankazatra tamin'ny antontan-taratasy sy ny fahatakarana ny fomba nanoratana ny script ho an'ny Actions, dia nanjary nazava fa ity rafitra ity dia hamaha tanteraka ny olana nipoitra. Amin'ny fotoana anoratana dia tsy maintsy misoratra anarana ianao raha te hampiasa an'io fampiasa io. !

Famaritana ny fiasa vaovao nataon'i Github mihitsy
Ny fanoratana script Actions dia manomboka amin'ny famoronana rakitra iray ao anaty lahatahiry iray .github sy ny subfolder azy workflows. Azo atao izany na amin'ny tanana na avy amin'ny tonian-dahatsoratra ao amin'ny tabilao Actions amin'ny pejy fitahirizana.

Ohatra amin'ny endrika script banga
Haneho hevitra fohy momba ny endrika aho
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.Andao hanoratra ny antsika manokana mifototra amin'ny môdely:
0) Azonao atao koa ny mamela ny anarana hoe "CI". Resaka tsiro io.
1) Manaraka, mila misafidy ny hetsika / trigger izay hanomboka ny script ianao, amin'ity tranga ity dia ny fanosehana mahazatra amin'ny fanolorana vaovao amin'ny tahiry.
on:
push2) Ny sary izay hampiasaina hanombohana ny script dia havela amin'ny ohatra ihany koa, satria Ubuntu Tena mahafa-po izany raha ny momba ny fiasa ilaina. Raha jerena miharihary fa mety ho sary ilaina na mety tsotra izao (na fitoeran'entana Docker mifototra amin'izany).
build:
runs-on: ubuntu-latest3) Amin'ny dingana, dia hametraka ny tontolo iainana aloha isika mba hanomanana ny asa lehibe.
3.1) mandehana any amin'ny sampana ilaintsika (dingana mahazatra checkout):
- uses: actions/checkout@v13.2) mametraka Python:
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: 3.73.3) mametraka ny fiankinan'ny mpamokatra anay:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt3.4) mamorona lahatahiry iray izay hamoahana ny pejin'ny tranokala:
- name: Make output folder
run: mkdir output4) Mba hahatonga ny asa ao amin'ny tranokala tsy miovaova, izany hoe, tsy mamafa ny fanovana teo aloha ary afaka manampy fanovana amin'ny tranokala tsy misy fifanoherana, ny dingana manaraka dia ny fanaovana clone ny tranokala isaky ny mandeha:
- name: Clone master branch
run: git clone "https://${{ secrets.ACCESS_TOKEN }}@github.com/${GITHUB_ACTOR}/${GITHUB_ACTOR}.github.io.git" --branch master --single-branch ./outputIty dingana ity dia miantso ny variables system:
- miovaova
GITHUB_ACTORGitHub dia mametraka ny tenany, ary ity no solon'anarana izay nahatonga ity script ity; - miovaova
secrets.ACCESS_TOKENizany no miteraka , azontsika atao ny mamindra azy ho fari-piainana amin'ny alàlan'ny fametrahana azy ao amin'ny tabilaoSecretsny firafitry ny tahiry. Mariho fa mandritra ny taranaka dia homena antsika indray mandeha ny famantarana, tsy hisy intsony ny fidirana amin'izany. Ary koa ny sandan'ny zavatra Secrets.
5) Andao hiroso amin'ny famoronana pejy:
- name: Generate static pages
run: pelican content -o output -s publishconf.pyIreo masontsivana alefa any amin'ny mpamokatra dia tompon'andraikitra amin'ny lahatahiry handefasana ireo rakitra vokarina (-o output) ary ny rakitra fanamafisam-peo ampiasainay hamokarana (-s publishconf.py; Azonao atao ny mamaky momba ny fomba hanasarahana ny config eo an-toerana sy ny config ho an'ny famoahana ao amin'ny antontan-taratasy Pelican).
Mamelà ahy hampahatsiahy anao izay ao anaty lahatahiry output Efa natao klôna ny fitehirizana tranokala.
6) Andao hanangana git ary hanondro ny rakitra niova:
- 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: ./outputAmin'izao fotoana izao dia misy fari-pahalalana efa fantatra no ampiasaina ary ny lahatahiry miasa dia aseho izay hanombohan'ny baiko avy amin'ity dingana ity. Ny baiko mankany amin'ny lahatahiry miasa dia ho toy ny - cd output.
7) Andao hamorona hafatra commit, ataovy ny fanovana ary atsipazo ao anaty tahiry. Mba tsy ho very maina ny fanoloran-tena ary noho izany dia tsy miteraka hadisoana amin'ny bash (ny vokatra dia tsy 0) — aloha, andeha hojerentsika raha ilaina ny manolo-tena sy manosika zavatra mihitsy. Mba hanaovana izany dia mampiasa ny baiko izahay git diff-index --quiet --cached HEAD -- izay mivoaka amin'ny terminal 0 raha tsy misy fiovana mifandraika amin'ny dikan-teny teo aloha amin'ny tranokala, ary 1 misy fiovana toy izany. Avy eo dia manodina ny vokatry ity baiko ity izahay. Noho izany, amin'ny fampahalalam-baovao momba ny fanatanterahana ny script, dia handrakitra fampahalalana mahasoa momba ny toetry ny tranokala amin'ity dingana ity isika, fa tsy hidona ho azy ary handefa tatitra momba ny fianjeran'ny script.
Izahay koa dia manao ireo hetsika ireo ao amin'ny lahatahiry misy pejy efa vita.
- 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: ./outputvokatra
Vokatr'izany, ny script toy izany dia mamela anao tsy hieritreritra momba ny famoronana pejy static. Amin'ny fampidirana fiovana mivantana amin'ny tahiry manokana, na amin'ny fiaraha-miasa amin'ny git avy amin'ny rafitra rehetra na amin'ny famoronana rakitra amin'ny alàlan'ny interface Internet GitHub, ny Actions dia hanao ny zava-drehetra. Raha nianjera tsy nampoizina ny script dia hisy fampahafantarana halefa any amin'ny mailakao.
Kaody feno
Hamela ny dikan-teny miasa aho, izay ampiana ny dingana farany amin'ny fandefasana fampandrenesana fa nisy commit natosiky ny tahiry lehibe.
Ireo tsiambaratelo voalaza etsy ambony dia ampiasaina, izay ampiana ny mari-pamantarana bot sy ny ID mpampiasa izay ilana ny hafatra.
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: ./outputsary

Ny vokatry ny iray amin'ireo hazakazaka aseho ao amin'ny tabilao Actions amin'ny tahiry loharano

Hafatra avy amin'ny bot momba ny fahavitan'ny script
rohy mahasoa
Source: www.habr.com
