Երբ նախագիծն արդեն աշխատում է տեղային միջավայրում, չորս հրաման այն հասցնում են Zinn Digital® հոսթինգի գործող կայքին՝ մուտք գործել, կապել նախագիծը հոսթինգի սլոտին, կարդալ նախաթռիչքային ստուգումը (pre-flight) և ուղարկել (push)։ Այս հոդվածը մանրամասն ներկայացնում է դրանցից յուրաքանչյուրը, թե ինչ է այն արտածում, ինչպես նաև այն հրամանները, որոնց դուք դիմում եք դրանից հետո՝ վերատեղակայումներ, տեղակայման պատմություն և կառուցման (build) մատյաններ։
Մուտք գործեք API բանալիով
Ստեղծեք բանալի կառավարման վահանակում՝ Settings → API keys բաժնում, ապա՝
zinnector login
Բանալին մուտքագրվում է հրամանի հարցման (prompt) ժամանակ. այն երբեք չի ընդունվում անմիջապես հրամանի տողում, ուստի չի կարող հայտնվել ձեր shell-ի պատմության մեջ կամ գործընթացների ցանկում։ CI-ում փոխանցեք այն pipe-ով՝ echo "$ZINN_API_KEY" | zinnector login --profile ci, կամ սահմանեք ZINNECTOR_TOKEN և ընդհանրապես բաց թողեք login-ը։ Բանալին ստուգվում է նախքան պահպանվելը և պահպանվում է ֆայլի 600 ռեժիմով։ zinnector whoami --scopes ցույց է տալիս, թե որ կազմակերպություն եք մուտք գործել և ինչ թույլտվություններ ունի բանալին. sandbox-ի բանալին նշվում է համապատասխանաբար։
Կապեք նախագիծը սլոտին
zinnector link # ընտրեք կայքը ցանկից
zinnector link example.com --repo acme/site --branch main
link-ը գրանցում է կայքի id-ն zinnector.json-ում և, եթե չեք փոխանցում --no-repo, կապում է նախագծի git remote-ը հարթակի կայքի հետ, որպեսզի push-ը տեղակայի այն։ Հաստատեք (commit արեք) zinnector.json-ը. այն գործընկերը, ով կկլոնավորի պահոցը, այնուհետև կտեղակայի նույն տեղում՝ առանց լրացուցիչ ցուցումների։ Այն որևէ գաղտնիք չի պարունակում։
Կարդացեք նախաթռիչքային ստուգումը (pre-flight)
zinnector check
Սա այն հրամանն է, որի համար գոյություն ունի CLI-ը։ Այն համեմատում է ձեր նախագիծն այն սլոտի հետ, որտեղ այն պատրաստվում է տեղակայվել, և արտածում է յուրաքանչյուր անհամապատասխանություն, ինչպես նաև յուրաքանչյուր համեմատություն, որը չի հաջողվել կատարել.
- PHP-ի տարբերակը՝ մայոր տարբերակի տարբերությունը գնահատվում է բարձր (high), քանի որ այն անխուսափելիորեն խաթարում է կայքի աշխատանքը, իսկ մինոր տարբերությունը՝ ավելի ցածր, քանի որ ամեն ինչ որպես կրիտիկական գնահատելը մարդկանց սովորեցնում է անտեսել նախազգուշացումը։
- Արդյոք սլոտը կարող է անցնել այն տարբերակին, որի վրա դուք կառուցել եք, արդյոք սլոտի PHP-ն ժամկետանց է (past end of life), և արդյոք մեքենան կիրառել է այդ տարբերակը, թե պարզապես տեղեկացվել է դրա մասին։
- Ձեր նախագծի չափը և ֆայլերի քանակը՝ սլոտի վրա փաստացի մնացած սկավառակի և inode-ի ազատ ծավալի համեմատ. WordPress-ի ծառը կարող է սպառել ֆայլերի սահմանաչափը՝ դեռևս չհասնելով սկավառակի առավելագույն ծավալին։
- WordPress-ի տարբերակները յուրաքանչյուր կողմում, արդյոք սլոտն ավարտել է կարգավորումը (provisioning), և արդյոք պահոցը միացված է push կատարելու համար։
Այն նախազգուշացնում է, բայց երբեք չի արգելափակում։ Յուրաքանչյուր արդյունք կարող է շրջանցվել zinnector push --force հրամանով, քանի որ դուք ձեր կայքի մասին գիտեք բաներ, որոնք ստուգիչը չգիտի։ Համեմատությունը, որը չի հաջողվել կատարել, ներկայացվում է որպես անհայտ (unknown), ոչ երբեք որպես հաջողված (pass), և ամփոփագիրը միշտ ցույց է տալիս, թե քանիսն են եղել դրանք։ Լռելյայնորեն տեղային PHP-ի տարբերակը zinnector.json-ում հայտարարվածն է. --probe-ը գործարկում է տեղային runtime-ը և չափում է այն։ --strict-ն ավարտվում է ոչ զրոյական կոդով նաև անհայտների դեպքում, ինչն էլ հենց անհրաժեշտ է CI ստուգմանը (CI gate)։
Ուղարկել (Push)
zinnector push
push-ը գործարկում է նախաթռիչքային ստուգումը, ուղարկում է ձեր commit-ները, նախաձեռնում է տեղակայումը և հետևում դրան մինչև ավարտը՝ արտածելով վերջնական կարգավիճակը և տեղակայված commit-ը։ --dry-run-ն անում է ամեն ինչ, բացի բուն տեղակայումից. --no-wait-ը նախաձեռնում է այն և ավարտում աշխատանքը. --no-git-ը տեղակայում է այն, ինչ հարթակն արդեն ունի՝ առանց push անելու։ Եթե տեղակայված commit-ն այն չէ, որը հենց նոր ուղարկվեց, այն տեղեկացնում է այդ մասին։
Երբ ինչ-որ բան սխալ է ընթանում
zinnector deploys example.com # տեղակայման պատմություն՝ կարգավիճակ, commit, նախաձեռնող (trigger), հաղորդագրություն
zinnector logs example.com --build # ամենավերջին տեղակայման կառուցման (build) մատյանը
zinnector logs example.com --error # կայքի սխալների մատյանը
zinnector deploy example.com # վերատեղակայել այն, ինչ հարթակն արդեն ունի
zinnector ai "why is my deploy failing?"
zinnector ai-ը գործարկվում է հարթակում՝ ձեր իսկ հաշվի միջավայրում, ուստի այն կարող է տեսնել նույն տեղակայման պատմությունն ու մատյանները։ Նախագծի ներսից այն ուղարկում է նախագծի կառուցվածքը՝ պանակների անունները, տարբերակները և կայքի id-ն, բայց երբեք՝ ֆայլերի բովանդակությունը։
Առնչվող նյութեր