AppCenter နှင့် GitLab ပေါင်းစပ်မှု

ထရီမ်၊ မင်္ဂလာပါ။

BitBucket မှတစ်ဆင့် GitLab နှင့် AppCenter ပေါင်းစည်းမှုကို သတ်မှတ်ရာတွင် ကျွန်ုပ်၏အတွေ့အကြုံအကြောင်း ပြောပြလိုပါသည်။

Xamarin ရှိ ပလပ်ဖောင်း ဖြတ်ကျော် ပရောဂျက်အတွက် UI စမ်းသပ်မှုများကို အလိုအလျောက် စတင်သတ်မှတ်သောအခါတွင် ထိုသို့သော ပေါင်းစပ်မှု လိုအပ်လာသည်။ ဖြတ်တောက်ပုံအောက်တွင် အသေးစိတ် သင်ခန်းစာ။

* အများသူငှာစိတ်ဝင်စားပါက၊ လူများစိတ်ဝင်စားပါက၊ ဆန့်ကျင်ဘက်ပလပ်ဖောင်းအခြေအနေများတွင် UI စမ်းသပ်မှုကို အလိုအလျောက်လုပ်ဆောင်ခြင်းအကြောင်း သီးခြားဆောင်းပါးတစ်ခု ပြုလုပ်ပါမည်။

အဲဒီလို ပစ္စည်းတစ်ခုပဲ တူးတယ်။ ဆောင်းပါး. ထို့ကြောင့် ကျွန်ုပ်၏ဆောင်းပါးသည် တစ်စုံတစ်ဦးကို အထောက်အကူဖြစ်စေနိုင်သည်။

လုပ်ငန်း: ကျွန်ုပ်တို့အဖွဲ့သည် GitLab ကို ဗားရှင်းထိန်းချုပ်မှုစနစ်အဖြစ် အသုံးပြုသောကြောင့် AppCenter တွင် UI စမ်းသပ်မှုများကို အလိုအလျောက်စတင်သတ်မှတ်ပါ။

ပြဿနာ AppCenter သည် GitLab နှင့် တိုက်ရိုက်မပေါင်းစည်းကြောင်း တွေ့ရှိရပါသည်။ BitBucket မှတစ်ဆင့် ကျော်ဖြတ်ခြင်းကို ဖြေရှင်းချက်တစ်ခုအဖြစ် ရွေးချယ်ခဲ့သည်။

ခြေလှမ်းများ

1. BitBucket တွင် အလွတ်သိုလှောင်ရာတစ်ခုကို ဖန်တီးပါ။

ဒါကို အသေးစိတ်ဖော်ပြဖို့ မလိုအပ်ဘူးလို့ မြင်ပါတယ် :)

2. GitLab ကို သတ်မှတ်ခြင်း။

သိုလှောင်မှုသို့ တွန်းပို့ခြင်း/ပေါင်းစည်းသည့်အခါ၊ ပြောင်းလဲမှုများကို BitBucket သို့လည်း အပ်လုဒ်လုပ်ရန် လိုအပ်ပါသည်။ ဒါကိုလုပ်ဖို့၊ အပြေးသမားကို ထည့်ပါ (သို့မဟုတ် ရှိပြီးသား .gitlab-ci.yml ဖိုင်ကို တည်းဖြတ်ပါ)။

ဦးစွာ ကျွန်ုပ်တို့သည် before_scripts ကဏ္ဍသို့ ညွှန်ကြားချက်များကို ပေါင်းထည့်သည်။

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

ထို့နောက် လိုချင်သောအဆင့်သို့ အောက်ပါ command ကိုထည့်ပါ။

- 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

ကျွန်ုပ်တို့သည် တည်ဆောက်မှုကို စတင်ပြီး၊ ကျွန်ုပ်တို့၏ ပြောင်းလဲမှု/ဖိုင်များသည် BitBucket တွင် ရှိမရှိ စစ်ဆေးပါ။
* လက်တွေ့ပြသထားသည့်အတိုင်း SSH သော့များကို စနစ်ထည့်သွင်းခြင်းသည် ရွေးချယ်နိုင်သည်။ သို့သော်၊ အခြေအနေတွင်၊ အောက်တွင် SSH မှတစ်ဆင့် ချိတ်ဆက်မှုတစ်ခုကို သတ်မှတ်ရန်အတွက် algorithm တစ်ခုကို ကျွန်ုပ်ပေးပါမည်။

SSH မှတဆင့်ချိတ်ဆက်မှု

ပထမဦးစွာသင် SSH သော့ကိုထုတ်လုပ်ရန်လိုအပ်သည်။ ဒီအကြောင်း ဆောင်းပါးတွေ အများကြီးရေးပြီးပါပြီ။ ဥပမာ ကြည့်လို့ရတယ်။ ဒီမှာ.
ထုတ်လုပ်လိုက်သော ကီးများသည် ဤကဲ့သို့ ဖြစ်သည်-
AppCenter နှင့် GitLab ပေါင်းစပ်မှု

နောက်ထပ် လျှို့ဝှက်သော့ GitLab တွင် variable တစ်ခုအဖြစ်ထည့်ရန်လိုအပ်သည်။ ဒါကိုလုပ်ဖို့၊ ဆက်တင်များ > CI/CD > Environment Variables သို့သွားပါ။ လျှို့ဝှက်သော့ကို သင်သိမ်းဆည်းထားသည့် ဖိုင်၏ အကြောင်းအရာအားလုံးကို ပေါင်းထည့်ပါ။ ပြောင်းလဲနိုင်သော SSH_PRIVATE_KEY ကို ခေါ်ကြပါစို့။
* ဤဖိုင်သည် အများသူငှာသော့ဖိုင်နှင့် မတူဘဲ၊ တိုးချဲ့မှု ရှိမည်မဟုတ်ပါ။
AppCenter နှင့် GitLab ပေါင်းစပ်မှု

ကောင်းပြီ၊ နောက်တစ်ခုကတော့ BitBucket မှာ အများသူငှာသော့ကို ထည့်ဖို့ လိုပါတယ်။ ဒါကိုလုပ်ဖို့၊ သိုလှောင်ရာကိုဖွင့်ပြီး ဆက်တင်များ > Access Keys သို့သွားပါ။

AppCenter နှင့် GitLab ပေါင်းစပ်မှု

ဤနေရာတွင် ကျွန်ုပ်တို့သည် Add Key ကိုနှိပ်ပြီး ဖိုင်၏အကြောင်းအရာများကို အများသူငှာသော့ဖြင့် ( extension .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 ပေါင်းစပ်မှု

ထို့နောက် အသစ်ဖန်တီးထားသော အပလီကေးရှင်း၏ Build အပိုင်းသို့ သွားပါ။ အဲဒီမှာ ကျွန်တော်တို့ BitBucket ကို ရွေးပြီး အဆင့် 1 မှာ ဖန်တီးထားတဲ့ repository ကို ရွေးပါတယ်။

ကောင်းပြီ၊ ယခု ကျွန်ုပ်တို့ တည်ဆောက်မှုကို ပြင်ဆင်ရန် လိုအပ်ပါသည်။ ဒီလိုလုပ်ဖို့၊ ဂီယာသင်္ကေတကိုရှာပါ။

AppCenter နှင့် GitLab ပေါင်းစပ်မှု

မူအရတော့ အရာအားလုံးဟာ အလိုလိုသိနေတယ်။ ပရောဂျက်တစ်ခုနှင့် ဖွဲ့စည်းမှုပုံစံကို ရွေးချယ်ပါ။ လိုအပ်ပါက၊ တည်ဆောက်ပြီးနောက် စမ်းသပ်မှုများကို စတင်လုပ်ဆောင်ပါ။ အလိုအလျောက်စတင်လိမ့်မည်။

အခြေခံအားဖြင့်တော့ ဒီလောက်ပါပဲ။ ရိုးရှင်းသည်ဟုထင်ရသော်လည်း၊ သဘာဝအတိုင်း အရာအားလုံး ချောမွေ့သွားမည်မဟုတ်ပေ။ ထို့ကြောင့် ကျွန်ုပ်သည် အလုပ်လုပ်နေစဉ် ကြုံတွေ့ခဲ့ရသော အမှားအချို့ကို ဖော်ပြပါမည်။

'ssh-keygen' ကို အတွင်း သို့မဟုတ် ပြင်ပ အမိန့်တစ်ခုအဖြစ် အသိအမှတ်မပြုပါ။

ssh-keygen.exe သို့ လမ်းကြောင်းကို ပတ်ဝန်းကျင် ကိန်းရှင်များထဲသို့ မထည့်ခြင်းကြောင့်လည်း ဖြစ်ပေါ်သည်။
ရွေးချယ်စရာ နှစ်ခုရှိသည်- C:Program FilesGitusrbin ကို Environment Variables သို့ ပေါင်းထည့်ပါ (စက်ကို ပြန်လည်စတင်ပြီးနောက် အသုံးပြုပါမည်) သို့မဟုတ် ဤလမ်းညွှန်မှ ကွန်ဆိုးလ်ကို စတင်ပါ။

AppCenter သည် မှားယွင်းသော BitBucket အကောင့်သို့ ချိတ်ဆက်ထားပါသလား။

ပြဿနာကိုဖြေရှင်းရန်၊ သင်သည် သင်၏ BitBucket အကောင့်ကို AppCenter မှ လင့်ခ်ဖြုတ်ရန် လိုအပ်သည်။ ကျွန်ုပ်တို့သည် မှားယွင်းသော BitBucket အကောင့်သို့ ဝင်ရောက်ပြီး အသုံးပြုသူပရိုဖိုင်သို့ သွားပါ။

AppCenter နှင့် GitLab ပေါင်းစပ်မှု

ထို့နောက် ဆက်တင်များ > Access Management > OAuth သို့ သွားပါ။

AppCenter နှင့် GitLab ပေါင်းစပ်မှု

သင့်အကောင့်ကို လင့်ခ်ဖြုတ်ရန် Revoke ကိုနှိပ်ပါ။

AppCenter နှင့် GitLab ပေါင်းစပ်မှု

၎င်းပြီးနောက်၊ သင်သည် လိုအပ်သော BitBucket အကောင့်ဖြင့် ဝင်ရောက်ရန် လိုအပ်သည်။
* နောက်ဆုံးနည်းလမ်းအနေဖြင့်၊ သင်၏ဘရောက်ဆာ cache ကိုလည်းရှင်းလင်းပါ။

အခု AppCenter ကိုသွားကြည့်ရအောင်။ Build အပိုင်းကိုသွားပြီး Disconnect BitBucket အကောင့်ကို နှိပ်ပါ။

AppCenter နှင့် GitLab ပေါင်းစပ်မှု

အကောင့်ဟောင်းကို လင့်ခ်ဖြုတ်လိုက်သောအခါ၊ ကျွန်ုပ်တို့သည် AppCenter ကို ထပ်မံချိတ်ဆက်ပါသည်။ လိုချင်သောအကောင့်သို့ယခု။

'eval' ကို အတွင်း သို့မဟုတ် ပြင်ပ အမိန့်တစ်ခုအဖြစ် အသိအမှတ်မပြုပါ။

ကျွန်ုပ်တို့သည် ၎င်းကို အမိန့်တစ်ခုအစား အသုံးပြုသည်။

  - eval $(ssh-agent -s)

အသင်းအဖွဲ့:

  - ssh-agent

အချို့သောကိစ္စများတွင်၊ သင်သည် C:Program FilesGitusrbinssh-agent.exe သို့လမ်းကြောင်းအပြည့်အစုံကိုသတ်မှတ်ရန်လိုသည်၊ သို့မဟုတ် runner လည်ပတ်နေသောစက်ရှိ system variables များသို့ဤလမ်းကြောင်းကိုထည့်ပါ။

AppCenter Build သည် ခေတ်မမီတော့သော bitBucket သိုလှောင်မှုမှ ပရောဂျက်တစ်ခုအတွက် တည်ဆောက်မှုကို စတင်ရန် ကြိုးစားနေသည်

ငါ့ကိစ္စတွင်၊ ကျွန်ုပ်သည် အကောင့်များစွာဖြင့် အလုပ်လုပ်နေသောကြောင့် ပြဿနာပေါ်လာသည်။ ကက်ရှ်ကိုရှင်းလင်းရန်ဆုံးဖြတ်ခဲ့သည်။

source: www.habr.com

မှတ်ချက် Add