Шығарып жібер: агентпен бірге deploy жасау
Ноутбугыңдағы қалтадан кез келген адам аша алатын сілтемеге дейін — жиырма бес минут. Содан кейін дәл сол жұмысты агентке тапсырып, істегенін тексер.
ноутбугыңдағы қалтаны ашық HTTPS сілтемесіне айналдыру, deploy-ды агентке тапсыру және ол айтқан әр мәлімдемені пәрменмен тексеру
- Node 20+ және git орнатылған, тере алатын терминал бар (00-практикум)
- GitHub аккаунты, GitHub CLI орнатылған және кіруге дайын
- Тегін Cloudflare аккаунты — бұл практикумда карта ешқайда керек емес
- Шығаратын жоба — 02-практикумдағы QAIRU Event Sign-up беті де жарайды
Дәл қазір сенің жобаң — жай ғана қалта. Жиырма бес минуттан кейін ол URL болады. Алдымен өз қолыңмен жасайсың, себебі өзің ешқашан істеп көрмеген нәрсені агент дұрыс істеп жатыр ма — оны бақылай алмайсың, ал бақылау деген — бұл жұмыстың өзі.
Бірінші жартысын жалғыз жаса. Екінші жартысын Claude Code-пен жаса, ал соңғы бес минутты оның айтқаны шын ба — соны дәлелдеуге жұмса. Кезегі маңызды: «deploy сәтті өтті» деген агент бар болғаны мәлімдеме жасап тұр, ал осы беттің соңына жеткенде сол мәлімдеменің қате болуының төрт түрлі жолын білетін боласың.
Бірінші бөлім: өз қолыңмен жасайтын алты қадам
Терминалдан GitHub-қа кір
GitHub CLI аккаунтпен істелетін жұмысты пәрменге айналдырады, яғни кейін оны агентің де орындай алады. Оған қоса, ол GitHub MCP серверіне қарағанда контекстті аз жейді — Anthropic-тің өз кеңесі де осы: бір жұмысты істегенде
ghсияқты CLI құралдары MCP серверінен арзанға түседі (шығындар туралы құжаттама).gh auth login gh auth statusgh auth loginпәрмені сені браузердегі кіру бетіне және бір реттік кодқа алып барады.gh auth statusшын мәнінде қай аккаунтпен кіргеніңді көрсетеді — соны тексер, себебі осы практикумдағы «permission denied» мәселелерінің жартысы — ұмытып кеткен екінші GitHub аккаунтың.Репозиторийді құрып, бір пәрменмен push жаса
github.com сайтын ашудың қажеті жоқ. Жоба қалтаңның ішінен:
git init git add -A git commit -m "QAIRU Event Sign-up: first working version" gh repo create qairu-event --public --source=. --remote=origin --pushЖалауларды бір рет оқып шық — енді ешқашан іздеп отырмайсың.
--source=.дегені «репозиторий — осы қалта».--remote=originбайланысты әдеттегі атаумен жалғап қояды.--pushcommit-терді бірден жібереді. Ал--public— ақша мәселесі: GitHub-тың стандартты Actions серверлері ашық репозиторийлерде тегін, ал тегін жабық репозиторийге айына 2 000 минут қана беріледі (GitHub-тың төлем құжаттамасы).Windows PowerShell-де бұларды бір жолға тізсең,
&&орнына;қой. Әр пәрменді бөлек жолға жазсаң, қай жүйеде болса да жұмыс істейді.Сайттың өзі болатын қалтаны құрастыр
Статикалық сайтта сиқыр жоқ. Ол — қалта. Құрастыр да, қалтаны ашып, ішіне қарап шық: тек осы әрекеттің өзі deploy-дан қорқуды дерлік жойып жібереді.
npm run build ls distЕгер
dist/пайда болмаса, жобаң нәтижені басқа жерге шығарады —build/,out/,public/. Қалтаның нақты атауын дәл қазір тауып ал, себебі сен оны қазір deploy пәрменіне тересің, ал бірінші deploy-дың ең жиі кездесетін сәтсіздігі — мүлде басқа каталогтың тап-тамаша сәтті жүктелуі.Құрастыру қадамы мүлде жоқ па? 02-практикумдағы QAIRU Event Sign-up беті — бір ғана
index.html, басқа ештеңе жоқ, ал ол қазірдің өзінде сайт. Оған бөлек қалта бер, сонда бүкіл репозиторийді емес, бетті ғана жүктейсің:mkdir site mv index.html site/Содан кейін практикумның қалған бөлігінде
distдеп тұрған жердің бәріндеsiteдеп оқы.Cloudflare Pages-ге deploy жаса
Wrangler — Cloudflare-дің CLI құралы.
npxоны тұрақты орнатпай-ақ іске қосады.npx wrangler pages deploy dist --project-name=qairu-eventБірінші рет іске қосқанда ол сені браузерге жібереді: сонда Wrangler-ге Cloudflare аккаунтыңмен жұмыс істеуге рұқсат бересің, ал жоба әлі жоқ болса, оны құруды ұсынады. Содан кейін
dist/қалтасын жүктеп салады да,pages.devдеп аяқталатын сілтемені шығарады — ол әлдеқашан HTTPS-пен жұмыс істейді және дүниежүзіндегі деректер орталықтарынан беріледі.Басқа ештеңе термей тұрып, қай аккаунтқа жүктеп жатқаныңды тексергің келсе:
npx wrangler whoamiТелефоннан, мобильді интернетпен аш
Ноутбуктан емес. Ноутбугыңда кэштелген localhost пен көзіңе қарап тұрып өтірік айтатын браузер бар. Телефондағы Wi-Fi-ды өшір,
pages.devсілтемесін теріп, бетті жүкте.Практикумда дәлел деп саналатын жалғыз қадам — осы. Бұған дейінгінің бәрі — мәлімдеме; ал мынау — сенікі емес құрылғыдан, сенікі емес желі арқылы, сенікі емес серверге жеткен нақты сұрау.
Жеке домен қос — ал бұл қадам пәрмен емес
Бұған арналған
wranglerжалауы жоқ. Cloudflare басқару панелін ашып, Pages жобаңды тауып, Custom domains бөлімін аш та, атауды қос. DNS жазбасын Cloudflare өзі жасайды, SSL сертификатын да өзі береді. Содан кейін DNS тарауы керек — бірнеше минуттан бірнеше сағатқа дейін, кім қай жерден сұрап тұрғанына байланысты.Осы қадамды бір жерге жазып қой, себебі бірнеше минуттан кейін сен бұл жұмысты браузер аша алмайтын агентке тапсырасың. Ол осы олқылықты айналып өтеді де,
pages.devсілтемесін «дайын» деп хабарлайды.Cloudflare-дің тегін тарифі әр жобаға 100 жеке доменге дейін рұқсат етеді, яғни шектеу бұл қадамның орындалмауына ешқашан себеп болмайды (Pages шектеулері). Орындалмауының себебі — ешкімнің басып қоймағаны.
Домен әлі жоқ па? GitHub Student Developer Pack бір жылға тегін домен береді — Namecheap-тен
.me,.TECHнемесе Name.com-нан.devне.app(education.github.com/pack).
ТереңірекТегін тариф нақты не беретіні — сандармен
Cloudflare Pages Free: айына 500 build, бір уақытта 1 build, build үшін 20 минут шек, әр сайтқа 20 000 файл, әр файл 25 МиБ, әр жобаға 100 жеке домен және әр аккаунтқа 100 жоба. Статикалық файлдар үшін трафик шегі мүлде көрсетілмеген.
Кейін функция қоссаң, Workers Free күніне 100 000 сұрау және әр шақыруға 10 мс процессор уақытын береді, ал шығыс трафик үшін ақы алынбайды. Ақылы тариф айына $5-тан басталады.
Дереккөздер: Workers бағалары, Pages шектеулері. Студенттік жоба үшін мұның практикалық мәні мынау: бетіңді беру саған ештеңеге түспейді және бұдан кейін де түспейді. Бюджетті HTML емес, функциялар мен дерекқорлар жейді.
Екінші бөлім: дәл сол жұмысты агентке тапсыр
Енді deploy дұрыс өткенде қалай көрінетінін білесің — демек, оның бұрыс кеткенін де тани аласың. Тапсыр.
Осы жобаның Cloudflare Pages-ге бірінші рет deploy жасалуын жоспарла.
Мен жоспарды мақұлдағанша код жазба, бірде-бір пәрмен орындама.
Репозиторий туралы фактілер:
- Статикалық сайт. Құрастыру пәрмені — `npm run build`. Нәтиже шығатын
қалтаны конфигурацияны оқып өзің анықта — dist/ деп жорамалдама.
- GitHub-та әлі жоқ. Маған qairu-event деген ашық репозиторий керек.
- `gh` және `npx` бар. Мен [Windows PowerShell / macOS / Linux]
жүйесінде жұмыс істеймін.
Жоспарда маған мынаны бер:
1. Орындайтын нақты пәрмендеріңді, кезегімен.
2. Әрқайсысы туралы: файлды өңдеу арқылы кері қайтара алмайтындай не
өзгереді.
3. Қайсысын мүлде орындай алмайсың және неліктен.
4. Сайттың тірі екенін дәлелдеу үшін кейін өзім орындайтын бір пәрмен.
Содан кейін «Мынаны браузерде өзім істеуім керек» деген тақырыппен,
CLI баламасы жоқ әр қадамды тізіп бер. Сол тізім босағанша немесе мен
оларды істедім деп растағанша, сайт тірі деп айтпа.Ол жұмыс істеп жатқанда назар аударатын үш нәрсе.
Ол deploy жасар алдында тоқтап, рұқсат сұрайды — бұл дұрыс. Pro, Max және Team тарифтерінде интерактивті сеанстар енді auto режимінде басталады: онда әрекеттер орындалмай тұрып, оларды екінші, жіктеуіш модель қарап шығады. Жұмыс ортасына (production) жасалатын deploy — әдепкіде бұғатталатын әрекеттер тізімінде, force push пен жаппай жоюдың қасында (рұқсат режимдері). Сол беттің өзінде құжаттаманың ескертуі тұр: бұл сұрақтардың санын азайтады, бірақ қауіпсіздікке кепілдік бермейді. Ол сұрап тұрған пәрменді оқы, ішіндегі қалта атауын да оқы.
Шекараны жай сөзбен де сыза аласың. Әңгіме барысында «push жасама» десең, жіктеуіш модель мұны сен алып тастағанша шекара деп санайды. Бұл — сыпайылық емес, нағыз қоршау.
Немесе қоршауды тұрақты ет. .claude/settings.json файлында:
{
"permissions": {
"ask": ["Bash(git push *)", "Bash(npx wrangler *)"],
"deny": ["Read(./.env)", "Read(./.env.*)"]
}
}Жұлдызшаның алдындағы бос орынға көңіл бөл: дұрыс жазылуы — Bash(git push *), яғни жұлдызша қосалқы пәрменнен кейін тұрады, Bash(git *) емес (рұқсаттар құжаттамасы). Әрі шынайы шегін де көзден таса қылма: Bash ережелері бағдарламаны емес, пәрмен мәтінін салыстырады, сондықтан олар қауіпсіздік шекарасы емес, жай ғана ыңғайлылық.
Үшінші бөлім: оның шын мәнінде не істегенін тексер
Бұл бөлімнің неге бар екенін Anthropic-тің өз саны түсіндіреді: Claude Code пайдаланушылары рұқсат сұрауларының 93%-ын мақұлдайды, ал инженерлік жазба мұны мақұлдау шаршауына апарады дейді — «where people stop paying close attention», яғни адамдар мұқият қарауды қояды (auto режимі, 2026 ж. 25 наурыз). Сен де ерекшелік емессің. Сондықтан сезіммен емес, механикалық түрде тексер.
Транскрипт көрінісін ашу үшін Ctrl+O бас та, нақты құрал шақыруларын оқы — агент жазған қорытындыны емес, оның орындаған пәрмендерін (интерактивті режим). Содан кейін тексеруді өзің жүргіз. Сеанстың ішінде жол басындағы ! таңбасы пәрменді орындап, нәтижесін әңгімеге тастап кетеді.
git log --oneline -3
git remote -v
gh repo view --web
curl -sI https://qairu-event.pages.dev | head -1Төрт пәрмен — төрт түрлі өтірікті ұстайды. git log commit шынымен бар ма, әлде агент файлдарды тек қосып қана қойды ма — соны көрсетеді. git remote -v қай репозиторийге push жасалғанын көрсетеді. gh repo view --web репозиторийді ашады, сонда ішінде .env жатыр ма — өз көзіңмен көресің. Ал curl -sI тірі сілтемеден күй жолын сұрайды: HTTP/2 200 дегені — сервер жауап берді, ал есепке алынатын жалғыз нәрсе — сол.
Windows PowerShell-де соңғы жолға екі өзгеріс керек: ондағы curl — мүлде басқа пәрменнің бүркеншік атауы, ал head деген мүлде жоқ. curl.exe -sI https://qairu-event.pages.dev пәрменін бөлек орында немесе бүкіл блокты Git Bash-та іске қос.
Осы жобаға жаңа ғана жасалған deploy-ды тексер. Жадыңдағы ештеңені
шындық деп алма — ағымдағы күйді пәрмендермен тексеріп шық.
Нәтижені кесте түрінде бер, әр мәлімдемеге бір жол:
- мәлімдеме (мысалы: «репозиторий ашық», «жүктелген қалта — dist/»,
«тірі сілтеме ең соңғы build-ті береді»)
- оны тексеру үшін орындаған пәрменің
- нақты шыққан нәтиже
- PASS немесе FAIL
Соңында екі тізім жаса: дәл қазір шынымен тірі тұрғаны және әлі тек
менің ноутбугымда ғана бар нәрсе. Қандай да бір мәлімдемені осы жерден
пәрменмен тексеру мүмкін болмаса, жорамалдаудың орнына соны айт.Мұны /clear жасағаннан кейін жаңа сеанста орында. Жұмысты жаңа ғана істеген сеанс — оны тексеретін ең нашар сеанс: ол өз қорытындысын өзі растайды. Ал deploy туралы жады жоқ сеансқа барып қарауға тура келеді.
Deploy пәрмендері кезегімен, ешкім автоматтандыра алмайтын басқару панеліндегі жалғыз қадам және агент «сайт тірі» дегенде жаңа сеанста орындайтын тексеру промпты.
Бетің Wi-Fi өшірулі телефонда ашылады және оны сол жерге апарған нақты пәрменді атай аласың.