Habr ááᯠá¡áááºážááẠááŸáá·áºá á¬ážááŒá®áž GitHub á (beta) á¡ááºá¹áá«ááẠ- áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá¡ááŒá±á¬ááºáž áá±á¬ááºážáá«ážá¡áááºážáááºáᬠáá¯ááºáá±áá²á·áááºááᯠá¡á¶á·ááŒáááá«áááºá
"beta" áá±á¬áºáááºážáá±á¬ááºáž áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááẠá ááºážáááºáá²ááŒá áºááŒá±á¬ááºáž á¡ááŒá±á¬ááºážááŒáá»ááºááŒáá·áº ááá¯áá²á·ááá¯á· áá»áŸá±á¬á·ááœááºááá¯ááºáá¯á¶ááááºá ááá¯á·áá±á¬áº áááºážááẠá€áááááá¬ááᯠáá®ážááá·áºááá¯ááŸá±á¬ááºáá±áá¬áá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯ááœáá·áºáá±ážááá·áº beta á á¡áá¯á¶ážáááºáá±á¬á¡ááºá¹áá«áááºáá áºáá¯ááŒá áºáááºá áá®áááºážááá¬áá²á· á¡áá¯ááºáá¯ááºáá¯á¶á¡ááŒá±á¬ááºáž áá®áá±á¬ááºážáá«ážááŸá¬ áá»áœááºáá±á¬áºááŒá±á¬áá«áááºá
áááá¯ááºážááááºáá®
áá»áœááºá¯ááºááá¯á·ááẠá¡á á®á¡á ááºááá»á áááºáá«áá ááá¯ááºááá¯áẠ"About Me" áááºááá¯ááºááᯠááááºážáááºážáááºá¡ááœáẠááŒááºáááºá á¡áááºááŒá±á ááœááºáá°ááŒá®áž á¡ááá²á· ááœá±ážáá»ááºááœáá·áºááᯠááŸá¬ááœá±ááá·áºáá¯ááºáááºážá ááºááœáẠáá»áœááºá¯ááºááẠáá±á¬ááºážáá«ážáá»á¬ážá áœá¬ááᯠááá±á«ááºážáá»á¬ážá áœá¬ ááŒá®ážááŒá®ážááŒá®ážááŒá®ážááŒá®ážááŒá®áž áá¯ááºáá±á¬ááºááááºáᯠááŸááºáá¬ážááá¯ááºáá«áááºá
á¡áá»áá¯á·áá±á¬áá°áá»á¬ážááẠhosting ááá¯ááœá±ážáá»ááºáááºá á¡ááŒá¬ážáá°áá»á¬ážá cloud server áá áºáá¯ááŸáá·áºá¡áá¯ááºá á¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºááŸá¯ááŸáá·áºááœá±áá±ážáá»á±ááŸá¯ááá¯á·ááá¯áá¬ážááááºáá±á¬áá°ááá¯á·ááá¯ááœá±ážáá»ááºáááºá static sites áá»á¬ážááᯠrepository ááá¯á·á¡ááºáá¯ááºáá¯ááºááŒááºážáá²á·ááá¯á·áá±á¬á€á¡áá¬á¡á¬ážáá¯á¶ážááᯠGitHub ááŸáá·áº GitLab ááŸá áºáá¯áá¯á¶ážááœááºáá¯ááºáá±á¬ááºááá¯ááºáá±á¬ááŒá±á¬áá·áºááŒá áºáááºá
áá¯ááºáá«áááºá áá«á áá°ááá¯ááºážáá²á· ááá¯ááºááá¯ááºááœá±ážáá»ááºááŸá¯áá«á
áá»áœááºá¯ááºááá±á¬ááºáá¯á¶ážááœá±ážáá»ááºááŸá¯ááŸá¬ GitHub á á¬áá»ááºááŸá¬áá»á¬ážááŒá áºáááºá
á á¬áá»ááºááŸá¬áá»á¬ážá¡ááŒá±á¬ááºáž
áááºáá°áá²ááááá°ážá gh-pages
- áááºážááẠáááºááá¯ááºáá¯á¶á
á¶ááŒáá·áº á
á¬ááœááºá
á¬áááºážáá»á¬ážááᯠááááºážáááºážááẠááœá±ážáá»ááºááŸá¯áá
áºáá¯ááŒá
áºááŒá®áž áááºážááᯠá¡ááá²á·áá±ážáá±á¬ááºáᬠá
á¬ááœááºá
á¬áááºážáá»á¬ážá¡ááŒáẠááá¯ááºááá¯ááºáááºááá¯ááºáá»á¬ážááᯠááááºážáááºážáááºáááºáž á¡ááá¯ááŒá¯áá¬ážáááºá á€áá¯ááºáá±á¬ááºáá»ááºááᯠá¡áá¯á¶ážááŒá¯áá°á¡á¬ážáá¯á¶ážá¡ááœáẠGitHub á០áá¶á·ááá¯ážáá¬ážááŒá®áž ááá¯ááŸá±á¬ááºááŸá¯áááºáááºáá»á¬ážááœáẠáááá¯ááºáá«áááºá
ááá±á¬áá»ááºááá¯ááŸá±á¬ááºááŸá¯ááœáẠáá¬áááœá²áá
áºáá¯ááᯠá¡áá¯á¶ážááŒá¯áááºá gh-pages
á¡áá¯á¶ážááŒá¯áá°ááá¯ááºáá
áºáá¯á¡ááœáẠ- á¡áááºááŸáá·áºáá®ážááŒá¬ážááá¯ááŸá±á¬ááºááŸá¯ username.github.io
site á¡áááºážá¡ááŒá
áºáá»á¬ážááŸáá·áºá¡áá° master
á¡áááºá
á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠáááºááá¯ááá¯ááŒáá·áºááŸá¯ááá¯ááºáá«áááºá CNAME
ááá¯ááááºážá¡áááºááŒáá·áº GitHub áá¬áá¬áá»á¬ážáá±á«áºááœáẠááá·áºááá¯ááááºážáááºáá±á¬ááºááŸá¯áá±ážáá°á DNS ááᯠá
áá
áºááá·áºááœááºážáá«á
ááá¯ááá¯á·áá±á¬ááá¯ááºááᯠááŒá¯á á¯áááºáž á€áá±áá¬ááœáẠáá±á¬ááºážáá«ážáá»á¬ážá áœá¬ ááŸááááºááᯠáá»áœááºá¯ááºáá±áá»á¬áá«áááºá ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºáááºááŒá±á¬ááá·áºá¡áá¬ááá¯ááºáá«á
ááŒá¿áá¬áá áºáá¯ááŒá áºááœá¬áž
ááŒá¿áá¬ááŸá¬ static generator ááá¯á¡áá¯á¶ážááŒá¯áá±á¬á¡áá«ááœáẠá á¬áá»ááºááŸá¬áá»á¬ážáááºáá®ážááŒááºážááŸáá·áº ááá¯ááŸá±á¬ááºááŸá¯ááœáẠáááºážááá¯á·ááᯠáááºááŒááºážáá¯ááºáááºážá ááºááᯠááá¯ážááŸááºážá á±áááºá¡ááœáẠá¡ááᯠscript áá»á¬ážáá±ážáá¬ážáááºááŸáá·áº á á¬ááŒáá·áºááá¯ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠááá¯á¡ááºáá«áááºá ááá¯ážááŸááºážá áœá¬áááºá áááºááẠáááºážááŒá áºáá»á¬ážááᯠáá®ážááŒá¬ážáá®ážááá·áºááá¯ááŸá±á¬ááºááŸá¯ááœáẠááááºážáááºážáá¬ážáá«áá ááá¯á·áá±á¬áẠááá¯ááºáá±á«áºááœáẠá¡ááŒá±á¬ááºážá¡áá²áá áºáá¯ááŸááá¬ááá¯ááºážá áááºáááá¯ááºááá¯ááŸá±á¬ááºáá¬ááŸá áá¯ááºáá±ááŸá¯á áá±á¬ááºáááºááœá²áá»áá¯ážáááºáá»á¬ážá¡ááœáẠáá±áááœááºážáááºáááºážáá»ááºááᯠá¡áá¯á¶ážáá»ááẠááá¯á¡ááºáá«áááºá
áá±á«áá»á¬ážáááºá
áááŒá¬áá±ážáá®ááááºá áááºááá¯ááºáá±á«áºááŸá áá±á«á·ááºá¡ááºááááá±ážáá»ááºáá áºáá¯áááŒá áºá á±á GitHub á០ááááºážááœáŸá¬ááœááºááŒá áºá á± á¡áá áºáááºáá±á¬ááºáá¬ážáá±á¬ CI/CD ááᯠáááááŒá¯áááá²á·ááŒá®áž áááºážáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá¡á¬ážáá¯ááºááŸá¯á¡áááºážáá¯á¶ážááŒáá·áº áá¯ááºáá±á¬ááºááá¯ááºá á±áá²á·áááºá
static page áá»ááºááá±áá¬áá»á¬ážá¡ááŒá±á¬ááºáž
á€á¡ááŒá±á¬ááºážá¡áá¬ááœá²á¡áá±á«áº á¡áá°ážá¡á¬áá¯á¶á áá¯ááºáááºááá¯ááºáá±á¬áºáááºáž á¡á±á¬ááºáá«ááœá±ážáá»ááºááŸá¯ááŸáá·áºá¡áá¯á¶ážááŒá¯ááŸá¯á¡ááœááºáž áá»áœááºá¯ááºáá±á¬ááºááŸááá²á·áá±á¬ á€á¡áá¬á¡áá»áá¯á·ááᯠáá»áŸáá±áá«áááº-
1) ááá·áºáááá¯ááááºážáááºážáá¬áá¬á áá¬ážááŸáá·áº ááá¯ááºáá®áá±á¬ áá»ááºááá±áá¬áá áºáá¯á¶áž ááá¯á·ááá¯áẠáááºááá¯ááºááá»áŸ áá¬ážáááºááá¯ááºáá±á¬ áááááá¬ááᯠááœá±ážáá»ááºáá«á áá»áœááºá¯ááºááá¯ááºááá¯áẠááá¯ááºá¡áá¯ááºáá¯ááºáááºá¡ááœáẠáá¯ááºáá±á¬ááºáá»ááºá¡áá»áá¯á·ááᯠááá·áºááœááºážáááºá áááºážáááá¯ááá¯áááºááŒáááºááŸá¯ááŸáá·áº á¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±á¬ááºááŸá¯á¡ááœáẠáá»áá¯ááºážáá±á¬ááºáá»á¬ážááá·áºáááá·áºá¡áá»áááºáá áºáá¯ááœáẠáá»áœááºá¯ááºááẠá€á¡ááŒá¶á¥á¬ááºááᯠáááŸááá²á·áá«áááºá ááá¯á·á¡ááŒááºá áááºážááẠplugins áá¯á¶á á¶ááŒáá·áº áááºááá¯ááºááá¯áẠáá±á¬ááºáááºáá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠáá±ážáá¬ážááẠá¡ááŒá±á¬ááºážááŒáá»ááºáá±á¬ááºážáá áºáá¯ááŒá áºáááºá
2) áááºááá·áº generator ááá¯ááœá±ážáá»ááºáááºááŸá¬ ááá¯ááºááá¯ááºááœá±ážáá»ááºááŸá¯ááŒá
áºáááºá ááá¯á·áá±á¬áº GitHub Pages ááá¯ááºáá±á¬ááºááá¯ááºá
áœááºážááœáẠáááŠážááŸá
áºááŒáŸá¯ááºááŒááºážá¡ááœáẠááẠáŠážá
áœá¬ááá·áºááœááºážááááºááŒá
áºááŒá±á¬ááºáž ááá·áºááœááºážá
ááºážá
á¬ážááá·áºáá«áááºá
áá»áœááºá¯ááºááá®ážá
ááºááœá±ážáá»ááºááŸá¯ááẠáááá¡áá»ááºáá±á«áºááœáẠá¡ááŒá±áá¶áááºá
__
ááŒá¿áá¬ááá¯áá¯á¶áá±á¬áºááŒááºáž
á¡ááááá¬áááºááŸá¬ áá®ážááá·áºááá¯ááŸá±á¬ááºááŸá¯á០static á á¬áá»ááºááŸá¬áá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±ážááá·áº script (á¡ááŸááºá configuration file) ááá¯áá±ážáááºááŒá áºáááºá ááŒá±ááŸááºážáá»ááºááœáẠvirtual ááẠá ááºážáá»ááºááá¯ááºáá±á¬ááºááá¯ááºá áœááºážáá« á ááºáááá·áºáááºá script ááá¯ááºááá¯ááºá public repository ááœáẠá¡áááºááá·áºáá¯ááºáá¬ážáá±á¬ á á¬áá»ááºááŸá¬áá»á¬ážááᯠáá±á«ááºážááá·áºáá«áááºá
ááŒá±ááŸááºážáááºážáá»á¬áž
ááŒá¿áá¬ááŒá±ááŸááºážááẠáá»áœááºá¯ááºááá¯á·á¡áá¯á¶ážááŒá¯ááá·áº áááááá¬áá»á¬áž-
- GitHub áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá
- Python3.7;
- Pelican;
- Git;
- GitHub á á¬áá»ááºááŸá¬áá»á¬ážá
addressing
ááá¯á·ááŒá±á¬áá·áºá á
á¬ááœááºá
á¬áááºážáá»á¬ážááᯠá¡áááºážáááºáááºážááŸá®ážááŒá®áž áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá¡ááœáẠáá¬ááºááœáŸááºážáá»á¬ážááᯠáááºááá¯á·áá±ážáá¬ážááŒá±á¬ááºáž áá¬ážáááºááŒá®ážáá±á¬ááºá á€ááá¹ááá¬ážááẠááŒá
áºáá±á«áºáá¬ááá·áºááŒá¿áá¬ááᯠáá¯á¶ážáá¯á¶ážáá»á¬ážáá»á¬ážááŒá±ááŸááºážááá¯ááºáááºááŒá
áºááŒá±á¬ááºáž áááá¬áááºááŸá¬ážáá¬áááºá á
á¬áá±ážáá»áááºááœáẠá€áá¯ááºáá±á¬ááºáá»ááºááᯠá¡áá¯á¶ážááŒá¯ááẠá
á¬áááºážááœááºážááá«áááºá
Github ááá¯ááºááá¯ááºá áá¯ááºáá±á¬ááºááá¯ááºá
áœááºážá¡áá
áºá¡ááŒá±á¬ááºáž áá±á¬áºááŒáá»ááº
áá¯ááºáá±á¬ááºáá»áẠáá¬ááºááœáŸááºážáá±ážáá¬ážááŒááºážááẠááá¯ááºááœá²áá
áºáá¯ááœáẠá¡áááºááŸááá±á¬ ááá¯ááºáá
áºáá¯ááᯠáááºáá®ážááŒááºážááŒáá·áº á
áááºáááºá .github
áááºážáááá¯ááºááœá²ááœá² workflows
. áááºážááᯠáá°ááá¯ááºááá¯ááºááŒá
áºá
á± ááá¯á·ááá¯áẠááááºážáááºážáá±ážá
á¬áá»ááºááŸá¬ááŸá áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážáááºááºááŸá áááºážááŒááºáá°á០áá¯ááºáá±á¬ááºááá¯ááºáááºá
ááá¬áá¬ááºááœáŸááºážáá¯á¶á
ᶠááá°áá¬
áá±á¬ááºáá±á«áºááœáẠá¡ááá¯áá»á¯á¶áž ááŸááºáá»ááºáá±ážáá«áááºá
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.
ááá°áá¬áá¯á¶á á¶ááᯠá¡ááŒá±áá¶á áá»áœááºá¯ááºááá¯á·ááá¯ááºááá¯ááºáá±ážááŒáá«á áá¯á·á
0) âCIâ ááá¯áá²á· áá¬áááºááá¯áááºáž áá»ááºáá¬ážááá¯ááºáá«áááºá á¡ááá¬ááá á¹á áá«á
1) ááá¯á·áá±á¬ááºá áááºááẠscript ááá¯ááœáá·áºááá·áº action/trigger ááá¯ááœá±ážáá»ááºáááºááá¯á¡ááºáááºá áá»áœááºá¯ááºááá¯á·áá¡ááŒá±á¡áá±ááœááºá áááºážááẠrepository ááá¯á· commit á¡áá áºáá áºáá¯ááá¯á¶ááŸááºááœááºážá¡á¬ážáá±ážááŸá¯ááŒá áºáááºá
on:
push
2) Ubuntu ááẠááá¯á¡ááºáá±á¬áá¯ááºáá±á¬ááºááá¯ááºá
áœááºážááᯠáá»á±áááºá¡á¬ážááá±á¬ááŒá±á¬áá·áº script ááᯠááá°áá¬á¡ááŒá
Ạá
áááºááá·áºá¡ááŒá±áá¶áá±á«áºááœáẠáá¯á¶ááá¯áááºáž áá»ááºáá¬ážáá«áááºá ááŒáá·áºáá±áááºá
build:
runs-on: ubuntu-latest
3) á¡ááá·áºáá»á¬ážááœááºá áá»áœááºá¯ááºááá¯á·ááẠáááºááá¯ááºáááºážá¡ááœáẠááŒáá¯áááºááŒááºáááºááẠáááºáááºážáá»ááºááᯠáŠážá áœá¬áááºáá±á¬ááºáá«áááºá
3.1) áá»áœááºá¯ááºááá¯á·ááá¯á¡ááºáá±á¬áá¬áááœá²ááá¯á·ááœá¬ážáá« (á
á¶á¡ááá·áº checkout
):
- uses: actions/checkout@v1
3.2) Python ááᯠinstall áá¯ááºáá«á
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: 3.7
3.3) áá»áœááºá¯ááºááá¯á·á áá»ááºááá±áá¬á ááŸá®ááá¯ááŸá¯ááᯠáááºáááºáá«-
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
á.á) ááá¯ááºá á¬áá»ááºááŸá¬áá»á¬ážááᯠáá¯ááºáá±ážááá·áº áááºážááœáŸááºáá áºáᯠáááºáá®ážáá«-
- name: Make output folder
run: mkdir output
4) ááá¯ááºáá±á«áºááŸáá¡áá¯ááºááẠáááááºáááºážááŒá áºá á±áááºá ááŒá±á¬ááááºá ááááºá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááá»ááºáá²á ááœá²ááœá²ááŸá¯áá»á¬ážáááŸááá² site repository ááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááá·áºááá¯ááºá á±áááºá áá±á¬ááºáááá·áºááŸá¬ á¡ááŒáááºááá¯ááºáž site repository ááᯠclone áá¯ááºááá«áááº-
- 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
á€á¡ááá·áºááœáẠsystem variable áá»á¬ážááᯠáá±á«áºáááº-
- ááŒá±á¬ááºážáá²ááá¯ááºáá±á¬
GITHUB_ACTOR
GitHub ááẠáááºážááá¯ááºááá¯áẠááá·áºááœááºážááŒá®áž áááºážááẠá€á ááá áºááᯠá áááºá¡áá¯á¶ážááŒá¯áá°á á¡ááŸá¬ážááŒá±á¬áá·áºá - ááŒá±á¬ááºážáá²ááá¯ááºáá±á¬
secrets.ACCESS_TOKEN
áá«ááá¯ááºáá±ážáááºáGithub ááᯠá á®áá¶ááá·áºááœá²áááºá¡ááœáẠááá¯ááẠáááºááœáẠáááºááŸááºááŒááºážááŒáá·áº áááºážááᯠáááºáááºážáá»ááºááŒá±á¬ááºážáá²ááŸá¯áá áºáá¯á¡ááŒá Ạáá»áœááºá¯ááºááá¯á·ááŒááºáááºážááá¯ááºáááºáSecrets
áá»áœááºá¯ááºááá¯á·á repository áááºáááºáá»á¬ážá áá»áá¯ážáááºá¡ááœááºáž ááá¯áááºááᯠáá»áœááºá¯ááºááá¯á·áᶠáá áºáá«áááºáž áá±ážá¡ááºáááºááŒá áºááŒá®ážá áááºážááᯠáááºáá¶áááºáá±á¬ááºááœáá·áºááŸááá±á¬á·áááºááá¯ááºááŒá±á¬ááºáž áá»á±ážáá°ážááŒá¯á áááááŒá¯áá«á áá»áŸáá¯á·ááŸááºáá»ááºáá á¹á ááºážáá»á¬ážááááºááá¯ážáá»á¬ážá
5) áá»áœááºá¯ááºááá¯á·á á á¬áá»ááºááŸá¬áá»á¬ážááᯠáááºáá®ážááŒááºážááá¯á· áááºááœá¬ážááŒáá«á áá¯á·á
- name: Generate static pages
run: pelican content -o output -s publishconf.py
áá»ááºááá±áá¬ááá¯á· áá±ážááá¯á·áá±á¬ ááá·áºáááºáá»ááºáá»á¬ážááẠáá¯ááºáá±ážáá¬ážáá±á¬ ááá¯ááºáá»á¬ážááᯠáá±ážááá¯á·ááá·áº áááºážááœáŸááºá¡ááœáẠáá¬áááºááŸáááẠ(-o output
) ááŸáá·áº áá¯ááºáá¯ááºááẠáá»áœááºá¯ááºááá¯á·á¡áá¯á¶ážááŒá¯áá±á¬ configuration file (-s publishconf.py
; Local config ááᯠááá¯ááºážááŒá¬ážááẠáá»ááºážáááºáá¯á¶ááŸáá·áº Pelican documentation ááœáẠáá¯ááºáá±áááºá¡ááœáẠconfig ááᯠáááºáááºááá¯ááºáááºá).
áá»áœááºá¯ááºááá¯á·áááá¯áá«ááœááºááŸááá±á¬á¡áá¬ááᯠáá»áœááºá¯ááºááááá±ážáá«áá
á± output
ááá¯ááºááá¯ááŸá±á¬ááºáá¬ááᯠáá¯á¶áá°ááœá¬ážááŒá®ážááŒá
áºáááºá
6) áá»áœááºá¯ááºááá¯á·áááŒá±á¬ááºážáá²áá¬ážáá±á¬ááá¯ááºáá»á¬ážááᯠgit ááá¯áááºáá±á¬ááºááŒá®áž á¡ááœáŸááºážááááºážáá¯ááºááŒáá«á áá¯á·á
- 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
á€á¡áá»áááºááœááºá ááááŒá®ážáá¬áž variable ááá¯á¡áá¯á¶ážááŒá¯ááŒá®áž á€á¡ááá·áºá០commands áá»á¬ážááá¯á
áááºááá·áºáá¯ááºáááºážáááºážááœáŸááºááá¯ááœáŸááºááŒáá«áááºá á¡áá¯ááºáá¯ááºáá²á· directory ááá¯ááœá¬ážáááá·áº command á ááá»áá¯ážááá¯á¶ ááŒá
áºáá±áá«áááá·áºááẠ- cd output
.
7) áááááŒá¯á
á¬áá
áºá
á±á¬ááºááᯠáá¯ááºáá±ážáá«á á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáá¯ááºáá±á¬ááºááŒá®áž áááºážááá¯á·ááᯠááá¯ááŸá±á¬ááºáááºážááá¯á· ááœááºážááá¯á·ááŒáá«á
áá¯á·á ááá¯á·ááŸáᬠáááááááºááẠá¡áá»ááºážááŸá®ážáááŒá
áºáá² bash ááœáẠá¡ááŸá¬ážá¡ááœááºážáá
áºáᯠáááŒá
áºáá±á«áºá
á±áá« (ááááºááẠááááºááá¯ááºáá±á 0
) â áŠážá
áœá¬á áá
áºáá¯áá¯ááᯠáááááŒá¯ááŒá®áž ááœááºážááá¯á·ááẠááá¯á¡ááºáááºááŸááááŸá á
á
áºáá±ážááŒáá·áºááŒáá«á
áá¯á·á áá«ááá¯áá¯ááºááá¯á· áá»áœááºáá±á¬áºááá¯á· command ááá¯áá¯á¶ážáá«áááºá git diff-index --quiet --cached HEAD --
terminal ááá¯á· output áááá·áºáááºá 0
ááá¯ááºáááááºáá¬ážááŸááºážááŸáá·áº áááºáááºáá±á¬ á¡ááŒá±á¬ááºážá¡áá²áá»á¬áž áááŸááá«áá 1
á¡á²áá®ááᯠá¡ááŒá±á¬ááºážá¡áá²ááœá± ááŸááááºá ááá¯á·áá±á¬áẠáá»áœááºá¯ááºááá¯á·ááẠá€á¡áááá·áºáá±á¬áºáááááºááᯠáá¯ááºáá±á¬ááºáááºá ááá¯á·ááŒá±á¬áá·áºá áá¬ááºááœáŸááºážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážááá¯ááºáᬠá¡áá»ááºá¡áááºáá»á¬ážááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááá¯á¡áá»á±á¬áẠáá»ááºá
á®ážááœá¬ážááŒá®áž script áá»ááºá
á®ážááŸá¯ááŸáá·áºáááºáááºáá±á¬ á¡á
á®áááºáá¶á
á¬ááᯠáá»áœááºá¯ááºááá¯á·áᶠáá±ážááá¯á·ááá·áºá¡á
á¬áž á€á¡ááá·áºááœáẠááá¯ááºáá¡ááŒá±á¡áá±ááŸáá·áºáááºáááºáá±á¬ á¡áá¯á¶ážáááºáá±á¬á¡áá»ááºá¡áááºáá»á¬ážááᯠááŸááºáááºážáááºáá«áááºá
á¡áááºááá·áºáá¯ááºáá¬ážáá±á¬ á á¬áá»ááºááŸá¬áá»á¬ážááŒáá·áº áá»áœááºá¯ááºááá¯á·ááááºážááœáŸááºááœáẠá€áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºáá«áááºá
- 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
ááááº
ááááºá¡áá±ááŒáá·áºá ááá¯ááá¯á·áá±á¬ script ááẠááá·áºá¡á¬áž static pages áááºáá®ážááŒááºážá¡ááŒá±á¬ááºáž á ááºážá á¬ážáááºááœáá·áºááŒá¯áááºá áááºááá·áºá áá áºá០git ááŸáá·áºá¡áá¯ááºáá¯ááºááŒááºáž ááá¯á·ááá¯áẠGitHub áááºá¡ááºáá¬áá±á·á áºááŸáááá·áº ááá¯ááºáááºáá®ážááŒááºážááŒá áºá á± áá®ážááá·áºááá¯ááŸá±á¬ááºááŸá¯ááá¯á· á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááá¯ááºááá¯ááºááá·áºááœááºážááŒááºážááŒáá·áºá Actions ááẠáááºážááá¯á·ááá¯ááºááá¯áẠáá¯ááºáá±á¬ááºáááºááŒá áºáááºá Script ááẠááá»áŸá±á¬áºááá·áºáá² áá»ááºá á®ážááœá¬ážáá«á ááá·áºá¡á®ážáá±ážááºááá¯á· á¡ááŒá±á¬ááºážááŒá¬ážáá»ááºáá áºáᯠáá±ážááá¯á·áá«áááºá
áá¯ááºá¡ááŒáá·áºá¡á á¯á¶
áá±á¬ááºáá¯á¶ážá¡ááá·áºááœáẠcommit áá áºáá¯ááᯠmain repository ááá¯á· ááœááºážááá¯á·ááá¯ááºááŒá±á¬ááºáž á¡ááŒá±á¬ááºážááŒá¬ážá ᬠáá±ážááá¯á·ááá·áº áá±á¬ááºáá¯á¶ážá¡ááá·áºááœáẠáá»áœááºá¯ááºá á¡áá¯ááºáá¯ááºáá±á¬áá¬ážááŸááºážááᯠáá»ááºáá¬ážáá²á·áá«áááºá
á¡áááºáá±á¬áºááŒáá« áá»áŸáá¯á·ááŸááºáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒá®áž áá±á¬á·ááºááá¯áááºááŸáá·áº áááºáá±á·áá»áºáá±ážááá¯á·ááá¯ááá·áº á¡áá¯á¶ážááŒá¯áá° ID ááᯠááá·áºááœááºážáá¬ážáááºá
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
áááºáá¬ážááŒááº
á¡áááºážá¡ááŒá
áºááá¯ááŸá±á¬ááºááŸá¯á áá¯ááºáá±á¬ááºáá»ááºáá»á¬áž áááºááºááœáẠááŒááá¬ážááá·áº áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážáá²á០áá
áºáá¯áááááº
áá¬ááºááœáŸááºážááŒá®ážáá¯á¶ážááŒááºážá¡ááŒá±á¬ááºáž áá±á¬á·ááºá០áááºáá±á·áá»áº
á¡áá¯á¶ážáááºáá±á¬ááá·áºáá»á¬áž
source: www.habr.com