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-ում: