AppCenter-ի և GitLab-ի ինտեգրում

Tryam, բարև:

Ես կցանկանայի խոսել BitBucket-ի միջոցով GitLab-ի և AppCenter-ի ինտեգրման ստեղծման իմ փորձի մասին:

Նման ինտեգրման անհրաժեշտությունը ծագեց Xamarin-ում միջպլատֆորմային նախագծի համար UI թեստերի ավտոմատ մեկնարկի ժամանակ: Մանրամասն ձեռնարկը կտրվածքի տակ:

* Ես առանձին հոդված կպատրաստեմ միջպլատֆորմային պայմաններում UI թեստավորման ավտոմատացման մասին, եթե հանրությունը հետաքրքրված է:

Ես միայն մեկ այդպիսի նյութ եմ փորել статью. Հետեւաբար, իմ հոդվածը կարող է օգնել ինչ-որ մեկին:

ԱռաջադրանքՏեղադրեք UI-ի թեստերի ավտոմատ մեկնարկը AppCenter-ում, հաշվի առնելով, որ մեր թիմն օգտագործում է GitLab-ը որպես տարբերակի վերահսկման համակարգ:

խնդիր Պարզվեց, որ AppCenter-ը ուղղակիորեն չի ինտեգրվում GitLab-ի հետ։ Որպես լուծումներից ընտրվել է BitBucket-ի միջոցով շրջանցումը։

Քայլեր

1. Ստեղծեք դատարկ պահոց BitBucket-ում

Սա ավելի մանրամասն նկարագրելու կարիք չեմ տեսնում :)

2. GitLab-ի կարգավորում

Մեզ անհրաժեշտ է, որ պահոց մղելիս/միաձուլվելիս փոփոխությունները վերբեռնվեն նաև BitBucket-ում: Դա անելու համար ավելացրեք runner (կամ խմբագրեք գոյություն ունեցող .gitlab-ci.yml ֆայլը):

Սկզբում մենք հրամաններ ենք ավելացնում Before_scripts բաժնում

 - git config --global user.email "user@email"
 - git config --global user.name "username"

Այնուհետև ցանկալի փուլին ավելացրեք հետևյալ հրամանը.

- git push --mirror https://username:[email protected]/username/projectname.git

Իմ դեպքում, սա իմ ստացած ֆայլն է.

before_script:
 - git config --global user.email "user@email"
 - git config --global user.name "username"

stages:
  - mirror
mirror:
  stage: mirror
  script:
    - git push --mirror https://****:*****@bitbucket.org/****/testapp.git

Մենք գործարկում ենք build-ը, ստուգում ենք, որ մեր փոփոխությունները/ֆայլերը գտնվում են BitBucket-ում:
* ինչպես ցույց է տվել պրակտիկան, SSH ստեղների կարգավորումը պարտադիր չէ: Բայց, ամեն դեպքում, ստորև կներկայացնեմ SSH-ի միջոցով կապի ստեղծման ալգորիթմ

Միացում SSH-ի միջոցով

Նախ անհրաժեշտ է ստեղծել SSH բանալի: Այս մասին շատ հոդվածներ են գրվել։ Օրինակ, կարող եք նայել այստեղ.
Ստեղծված ստեղները նման են հետևյալին.
AppCenter-ի և GitLab-ի ինտեգրում

Հետագա Գաղտնի բանալին անհրաժեշտ է որպես փոփոխական ավելացնել GitLab-ին: Դա անելու համար անցեք Կարգավորումներ > CI/CD > Շրջակա միջավայրի փոփոխականներ: Ավելացրեք այն ֆայլի ԲՈԼՈՐ բովանդակությունը, որում պահել եք գաղտնի բանալին: Եկեք անվանենք SSH_PRIVATE_KEY փոփոխականը:
* այս ֆայլը, ի տարբերություն հանրային բանալու ֆայլի, չի ունենա ընդլայնում
AppCenter-ի և GitLab-ի ինտեգրում

Հիանալի է, հաջորդը դուք պետք է ավելացնեք հանրային բանալին BitBucket-ում: Դա անելու համար բացեք պահեստը և անցեք Կարգավորումներ > Մուտքի ստեղներ:

AppCenter-ի և GitLab-ի ինտեգրում

Այստեղ մենք սեղմում ենք «Ավելացնել բանալի» և ֆայլի բովանդակությունը տեղադրում ենք հանրային բանալիով (ֆայլ .pub ընդլայնմամբ):

Հաջորդ քայլը gitlab-runner-ում ստեղների օգտագործումն է: Օգտագործեք այս հրամանները, բայց աստղանիշները փոխարինեք ձեր մանրամասներով

image: timbru31/node-alpine-git:latest

stages:
  - mirror

before_script:
  - eval $(ssh-agent -s)
  - echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add - > /dev/null
  - mkdir -p ~/.ssh
  - chmod 700 ~/.ssh
  - ssh-keyscan bitbucket.org >> ~/.ssh/known_hosts
  - chmod 644 ~/.ssh/known_hosts
  - git config --global user.email "*****@***"
  - git config --global user.name "****"
  - ssh -T [email protected]

mirror:
  stage: mirror
  script:
    - git push --mirror https://****:****@bitbucket.org/*****/*****.git

3. AppCenter-ի կարգավորում

Մենք նոր հավելված ենք ստեղծում AppCenter-ում:

AppCenter-ի և GitLab-ի ինտեգրում

Նշեք լեզուն/հարթակը

AppCenter-ի և GitLab-ի ինտեգրում

Հաջորդը գնացեք նորաստեղծ հավելվածի Կառուցել բաժինը։ Այնտեղ մենք ընտրում ենք BitBucket-ը և 1-ին քայլում ստեղծված պահոցը:

Հիանալի է, հիմա մենք պետք է կարգավորենք կառուցվածքը: Դա անելու համար գտեք հանդերձանքի պատկերակը

AppCenter-ի և GitLab-ի ինտեգրում

Սկզբունքորեն, այնտեղ ամեն ինչ ինտուիտիվ է: Ընտրեք նախագիծ և կազմաձևում: Անհրաժեշտության դեպքում միացրեք թեստերի մեկնարկը կառուցումից հետո: Նրանք կսկսվեն ավտոմատ կերպով:

Հիմնականում դա բոլորն է: Պարզ է թվում, բայց, բնականաբար, ամեն ինչ հարթ չի ընթանա։ Հետևաբար, ես նկարագրելու եմ որոշ սխալներ, որոնք ես հանդիպել եմ աշխատելիս.

«ssh-keygen»-ը չի ճանաչվում որպես ներքին կամ արտաքին հրաման:

Դա տեղի է ունենում նաև այն պատճառով, որ ssh-keygen.exe-ի ուղին չի ավելացվել շրջակա միջավայրի փոփոխականներին:
Երկու տարբերակ կա՝ ավելացնել C:Program FilesGitusrbin Environment Variables-ին (կկիրառվի սարքը վերագործարկելուց հետո), կամ գործարկել վահանակը այս գրացուցակից:

AppCenter-ը միացե՞լ է սխալ BitBucket հաշվին:

Խնդիրը լուծելու համար դուք պետք է անջատեք ձեր BitBucket հաշիվը AppCenter-ից: Մենք մուտք ենք գործում սխալ BitBucket հաշիվ և գնում ենք օգտվողի պրոֆիլ:

AppCenter-ի և GitLab-ի ինտեգրում

Հաջորդը, գնացեք Կարգավորումներ > Մուտքի կառավարում > OAuth

AppCenter-ի և GitLab-ի ինտեգրում

Սեղմեք Չեղարկել՝ ձեր հաշիվն անջատելու համար:

AppCenter-ի և GitLab-ի ինտեգրում

Դրանից հետո դուք պետք է մուտք գործեք անհրաժեշտ BitBucket հաշիվ:
* Որպես վերջին միջոց, մաքրեք նաև ձեր բրաուզերի քեշը:

Հիմա եկեք գնանք AppCenter: գնացեք Կառուցել բաժինը, սեղմեք Անջատել BitBucket հաշիվը

AppCenter-ի և GitLab-ի ինտեգրում

Երբ հին հաշիվն անջատված է, մենք նորից կապում ենք AppCenter-ը: Այժմ դեպի ցանկալի հաշիվ:

«eval»-ը չի ճանաչվում որպես ներքին կամ արտաքին հրաման

Մենք այն օգտագործում ենք հրամանի փոխարեն

  - eval $(ssh-agent -s)

Թիմ:

  - ssh-agent

Որոշ դեպքերում, դուք պետք է կամ նշեք ամբողջական ուղին դեպի C:Program FilesGitusrbinssh-agent.exe, կամ ավելացնեք այս ուղին համակարգի փոփոխականներին այն մեքենայի վրա, որտեղ աշխատում է վազողը:

AppCenter Build-ը փորձում է գործարկել նախագծի համար build հնացած bitBucket պահոցից

Իմ դեպքում խնդիրն առաջացավ, քանի որ ես աշխատում էի մի քանի աքաունթներով։ Ես որոշեցի մաքրել քեշը:

Source: www.habr.com

Добавить комментарий