Heroku-ն թիմերի համար տրամադրում է CI լուծում: Նրանք կարող են փորձարկել dyno օրինակով ձեր նախագծի համար: Ավելի հետաքրքիր է, որ դուք կարող եք զուգահեռ դինոսներ գործարկել որպես ձեր CI կառուցվածքի մաս: Սա թույլ է տալիս բաժանել թեստերը զուգահեռ դինոսների վրա՝ CI-ի կառուցումն ավելի արագ ավարտելու և ժամանակ խնայելու համար:
Heroku-ն ձեզանից գանձում է յուրաքանչյուր դինոյի համար ծախսված վայրկյանների համար: Դա նշանակում է, որ ձեր դանդաղ թեստային փաթեթը մեկ դինոյի վրա գործարկելու փոխարեն դուք կարող եք այն բաժանել մի քանի դինոների վրա և քիչ թե շատ վճարել նույնը և զգալիորեն նվազեցնել ձեր նախագծի համար CI-ի ստեղծման ժամանակը:
Ինչպես սկսել Heroku CI-ով
Եթե դուք կամ ձեր ընկերությունն արդեն թիմ եք ստեղծել Heroku-ում, ապա կարող եք օգտագործել Heroku CI-ն և այնտեղ անցկացնել ձեր նախագծի թեստերը:
Հերոկուում դուք կարող եք բացել ձեր թիմը և կոնկրետ խողովակաշարը ձեր նախագծերից մեկի համար: Այնտեղ դուք կգտնեք Թեստեր ներդիր, որտեղ կարող եք միացնել Heroku CI-ն:
Ձեզ նույնպես անհրաժեշտ կլինի app.json ֆայլ ձեր նախագծի պահեստում: Ֆայլը պարունակում է տեղեկատվություն այն մասին, թե ինչ է անհրաժեշտ նախագիծը Heroku-ում գործարկելու համար: Մենք կավելացնենք app.json ֆայլի լրացուցիչ կազմաձևման անհրաժեշտությունը Heroku CI-ի համար:
Heroku CI-ի զուգահեռ փորձարկումներն օգտագործելու համար մենք պետք է այն միացված լինենք: Դուք պետք է խնդրեք Heroku-ի աջակցությունը՝ ձեր նախագծի համար այն ակտիվացնելու համար: Այս հատկությունը թույլ է տալիս գործարկել մինչև 32 զուգահեռ դինոս ձեր CI կառուցման համար:
Դուք կարող եք նաև դիտել բոլոր քայլերը ավելի մանրամասն տեսանյութում կամ պատճենել որոշ օրինակներ այս հոդվածից:
Ստորև ես ձեզ ցույց կտամ օրինակներ, թե ինչպես կարելի է բաժանել թեստերը Heroku CI-ի վրա Ruby և JavaScript նախագծերի համար:
Ինչպես գործարկել զուգահեռ դինոսներ Ruby on Rails նախագծում թեստային փաթեթի համար
Մենք կարող ենք RSpec-ով, Minitest-ով կամ այլ թեստային վազողներով գրված Ruby թեստերը դինամիկ կերպով բաժանել զուգահեռ դինոսների վրա, որտեղ բոլոր dyno-ները կավարտեն աշխատանքը նույն ժամանակ, այնպես որ մենք հնարավորինս շուտ արդյունքներ կստանանք մեր թեստային փաթեթի կանաչ կամ կարմիր լինելու վերաբերյալ: Դա անելու համար մենք կօգտագործենք Knapsack Pro գործիքն իր Հերթի ռեժիմ դինամիկ թեստային փաթեթի բաժանման համար: quantity ստեղնով մենք կարող ենք սահմանել, թե քանի զուգահեռ dyno կուզենք օգտագործել մեր scripts test հրամանը գործարկելու համար:
{
"environments": {
"test": {
"formation": {
"test": {
"quantity": 2
}
},
"addons": [
"heroku-postgresql"
],
"scripts": {
"test": "bundle exec rake knapsack_pro:rspec"
},
"env": {
"KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC": "rspec-token"
}
}
}
}
Մենք կարող ենք նաև փոխել դինոյի չափը մեր CI կառուցվածքի համար: Եթե դուք կատարում եք բարդ թեստեր, որոնք պահանջում են ավելի շատ պրոցեսոր կամ հիշողություն, կարող եք ավելացնել size պարամետրը app.json-ին` dyno type սահմանելու համար:
{
"environments": {
"test": {
"formation": {
"test": {
"quantity": 1,
"size": "performance-l"
}
}
}
}
Գործարկեք JavaScript թեստերը զուգահեռ Heroku CI dynos-ով Cypress E2E թեստային փաթեթի համար
End-to-end թեստերը (E2E) հաճախ շատ ժամանակ են պահանջում, քանի որ ձեր կայքի բազմաթիվ սցենարների վրա սեղմելը ժամանակատար է: Բազմաթիվ դինոների վրա Cypress թեստային փաթեթի բաժանումը կօգնի մեզ շատ ժամանակ խնայել և արագ պահել CI-ի կառուցումը:
Դրա համար մենք կարող ենք օգտագործել @knapsack-pro/cypress նախագիծը։ Այն օգտագործում է Knapsack Pro Queue Mode:
Ահա ձեր app.json կազմաձևը
{
"environments": {
"test": {
"formation": {
"test": {
"quantity": 2
}
},
"addons": [
"heroku-postgresql"
],
"scripts": {
"test": "$(npm bin)/knapsack-pro-cypress"
},
"env": {
"KNAPSACK_PRO_TEST_SUITE_TOKEN_CYPRESS": "example"
}
}
}
}
Եթե ցանկանում եք ավելին իմանալ Cypress-ի մասին, ապա ստուգեք տեսանյութը javascript E2E թեստերի անցկացման մասին Cypress-ի զուգահեռ CI հանգույցների վրա հոդվածում:
Ամփոփում
Heroku CI-ն հիանալի լրացում է Heroku-ին: Եթե դուք արդեն օգտագործում եք Heroku-ն, կարող եք հեշտությամբ օգտագործել dyno-ները և պահպանել ձեր CI-ի ցածր ծախսերը, քանի որ վճարում եք միայն dyno-ի օգտագործման համար: Հիանալի բանն այն է, որ դուք կարող եք գործարկել բազմաթիվ զուգահեռ CI դինոներ ձեր թեստային փաթեթի ենթաբազմության հետ՝ ձեր ինժեներական թիմի համար տոննա ժամանակ խնայելու համար: Դուք կարող եք ավելին իմանալ այն մասին, թե ինչպես Knapsack Pro-ն կարող է օգնել ձեզ խնայել ժամանակն ավելի արագ CI կառուցումներով:
Սկզբնապես հրապարակվել է docs.knapsackpro.com-ում: