การรวม AppCenter และ GitLab

ลองแอม สวัสดี!

ฉันอยากจะพูดคุยเกี่ยวกับประสบการณ์ของฉันในการตั้งค่าการรวม GitLab และ AppCenter ผ่าน BitBucket

ความจำเป็นในการบูรณาการดังกล่าวเกิดขึ้นเมื่อตั้งค่าการเปิดตัวการทดสอบ UI อัตโนมัติสำหรับโครงการข้ามแพลตฟอร์มบน Xamarin กวดวิชาโดยละเอียดด้านล่างตัด!

* ฉันจะจัดทำบทความแยกต่างหากเกี่ยวกับการทดสอบ UI อัตโนมัติในเงื่อนไขข้ามแพลตฟอร์มหากสาธารณชนสนใจ

ฉันขุดวัสดุดังกล่าวขึ้นมาเพียงชิ้นเดียว บทความ. ดังนั้นบทความของฉันอาจช่วยใครซักคนได้

งาน: ตั้งค่าการเปิดการทดสอบ UI อัตโนมัติบน AppCenter โดยที่ทีมงานของเราใช้ GitLab เป็นระบบควบคุมเวอร์ชัน

ปัญหา ปรากฎว่า 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"

จากนั้นเพิ่มคำสั่งต่อไปนี้ไปยังขั้นตอนที่ต้องการ:

- 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 ไว้ด้านล่างนี้

กำลังเชื่อมต่อผ่าน 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

จากนั้นไปที่ส่วน Build ของแอปพลิเคชันที่สร้างขึ้นใหม่ ที่นั่นเราเลือก BitBucket และที่เก็บที่สร้างขึ้นในขั้นตอนที่ 1

เยี่ยมเลย ตอนนี้เราต้องกำหนดค่าบิลด์แล้ว เมื่อต้องการทำเช่นนี้ ให้ค้นหาไอคอนรูปเฟือง

การรวม AppCenter และ GitLab

โดยหลักการแล้ว ทุกอย่างมีสัญชาตญาณ เลือกโปรเจ็กต์และการกำหนดค่า หากจำเป็น ให้เปิดใช้งานการทดสอบหลังการสร้าง พวกเขาจะเริ่มโดยอัตโนมัติ

โดยพื้นฐานแล้วนั่นคือทั้งหมดที่ ฟังดูเรียบง่าย แต่โดยธรรมชาติแล้ว ทุกอย่างจะไม่ราบรื่น ดังนั้นฉันจะอธิบายข้อผิดพลาดบางอย่างที่ฉันพบขณะทำงาน:

'ssh-keygen' ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอก

นอกจากนี้ยังเกิดขึ้นเนื่องจากเส้นทางไปยัง ssh-keygen.exe ไม่ได้ถูกเพิ่มลงในตัวแปรสภาพแวดล้อม
มีสองตัวเลือก: เพิ่ม C:Program FilesGitusrbin ลงในตัวแปรสภาพแวดล้อม (จะถูกนำไปใช้หลังจากรีบูตเครื่อง) หรือเปิดคอนโซลจากไดเร็กทอรีนี้

AppCenter เชื่อมต่อกับบัญชี BitBucket ผิดหรือเปล่า?

เพื่อแก้ไขปัญหา คุณต้องยกเลิกการเชื่อมโยงบัญชี BitBucket ของคุณจาก AppCenter เราเข้าสู่ระบบบัญชี BitBucket ผิดและไปที่โปรไฟล์ผู้ใช้

การรวม AppCenter และ GitLab

จากนั้นไปที่การตั้งค่า > การจัดการการเข้าถึง > OAuth

การรวม AppCenter และ GitLab

คลิกเพิกถอนเพื่อยกเลิกการเชื่อมโยงบัญชีของคุณ

การรวม AppCenter และ GitLab

หลังจากนี้ คุณจะต้องเข้าสู่ระบบด้วยบัญชี BitBucket ที่จำเป็น
* เป็นทางเลือกสุดท้าย ให้ล้างแคชเบราว์เซอร์ของคุณด้วย

ตอนนี้ไปที่ AppCenter ไปที่ส่วน Build คลิกยกเลิกการเชื่อมต่อบัญชี BitBucket

การรวม AppCenter และ GitLab

เมื่อบัญชีเก่าถูกยกเลิกการเชื่อมโยง เราจะเชื่อมโยง AppCenter อีกครั้ง ตอนนี้ถึงบัญชีที่ต้องการ

'eval' ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอก

เราใช้มันแทนคำสั่ง

  - eval $(ssh-agent -s)

ทีม:

  - ssh-agent

ในบางกรณี คุณจะต้องระบุเส้นทางแบบเต็มไปยัง C:Program FilesGitusrbinssh-agent.exe หรือเพิ่มเส้นทางนี้ไปยังตัวแปรระบบบนเครื่องที่รันเนอร์กำลังทำงานอยู่

AppCenter Build กำลังพยายามเปิดตัวบิลด์สำหรับโปรเจ็กต์จากที่เก็บ bitBucket ที่ล้าสมัย

ในกรณีของฉัน ปัญหาเกิดขึ้นเพราะฉันใช้งานหลายบัญชี ฉันตัดสินใจล้างแคช

ที่มา: will.com

เพิ่มความคิดเห็น