Integrasi AppCenter dan GitLab

Coba, halo!

Saya ingin berbicara tentang pengalaman saya dalam menyiapkan integrasi GitLab dan AppCenter melalui BitBucket.

Kebutuhan akan integrasi tersebut muncul ketika menyiapkan peluncuran otomatis pengujian UI untuk proyek lintas platform di Xamarin. Tutorial mendetail di bawah potongan!

* Saya akan membuat artikel terpisah tentang otomatisasi pengujian UI dalam kondisi lintas platform jika masyarakat tertarik.

Saya hanya menggali satu bahan tersebut sebuah artikel. Oleh karena itu, artikel saya mungkin dapat membantu seseorang.

Tugas: Siapkan peluncuran otomatis pengujian UI di AppCenter, mengingat tim kami menggunakan GitLab sebagai sistem kontrol versi.

masalah Ternyata AppCenter tidak terintegrasi langsung dengan GitLab. Bypass melalui BitBucket dipilih sebagai salah satu solusinya.

Langkah-langkah

1. Buat repositori kosong di BitBucket

Saya tidak melihat perlunya menjelaskan ini lebih detail :)

2. Menyiapkan GitLab

Kami memerlukannya saat mendorong/menggabungkan ke dalam repositori, perubahan juga diunggah ke BitBucket. Untuk melakukannya, tambahkan runner (atau edit file .gitlab-ci.yml yang ada).

Pertama kita menambahkan perintah ke bagian before_scripts

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

Kemudian tambahkan perintah berikut ke tahap yang diinginkan:

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

Dalam kasus saya, ini adalah file yang saya dapatkan:

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

Kami meluncurkan build, memeriksa apakah perubahan/file kami ada di BitBucket.
* seperti yang telah ditunjukkan oleh praktik, menyiapkan kunci SSH adalah opsional. Tapi, untuk berjaga-jaga, saya akan memberikan algoritma untuk mengatur koneksi melalui SSH di bawah ini

Menghubungkan melalui SSH

Pertama, Anda perlu membuat kunci SSH. Banyak artikel telah ditulis tentang ini. Misalnya, Anda bisa melihat di sini.
Kunci yang dihasilkan terlihat seperti ini:
Integrasi AppCenter dan GitLab

Selanjutnya Kunci rahasia perlu ditambahkan sebagai variabel ke GitLab. Untuk melakukannya, buka Pengaturan > CI/CD > Variabel Lingkungan. Tambahkan SEMUA konten file tempat Anda menyimpan kunci rahasia. Sebut saja variabel SSH_PRIVATE_KEY.
* file ini, tidak seperti file kunci publik, tidak akan memiliki ekstensi
Integrasi AppCenter dan GitLab

Bagus, selanjutnya Anda perlu menambahkan kunci publik ke BitBucket. Untuk melakukan ini, buka repositori dan buka Pengaturan > Tombol Akses.

Integrasi AppCenter dan GitLab

Disini kita klik Add Key dan masukkan isi file dengan kunci publik (file dengan ekstensi .pub).

Langkah selanjutnya adalah menggunakan kunci di gitlab-runner. Gunakan perintah ini, tapi ganti tanda bintang dengan detail Anda

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. Menyiapkan AppCenter

Kami membuat aplikasi baru di AppCenter.

Integrasi AppCenter dan GitLab

Tentukan bahasa/platform

Integrasi AppCenter dan GitLab

Selanjutnya, masuk ke bagian Build pada aplikasi yang baru dibuat. Di sana kami memilih BitBucket dan repositori yang dibuat pada langkah 1.

Hebat, sekarang kita perlu mengkonfigurasi build. Untuk melakukan ini, temukan ikon roda gigi

Integrasi AppCenter dan GitLab

Pada prinsipnya, segala sesuatu di sana bersifat intuitif. Pilih proyek dan konfigurasi. Jika perlu, aktifkan peluncuran pengujian setelah build. Mereka akan mulai secara otomatis.

Pada dasarnya, itu saja. Kedengarannya sederhana, tetapi tentu saja semuanya tidak akan berjalan mulus. Oleh karena itu, saya akan menjelaskan beberapa kesalahan yang saya temui saat bekerja:

'ssh-keygen' tidak dikenali sebagai perintah internal atau eksternal.

Hal ini juga terjadi karena jalur ke ssh-keygen.exe tidak ditambahkan ke variabel lingkungan.
Ada dua opsi: tambahkan C:Program FilesGitusrbin ke Variabel Lingkungan (akan diterapkan setelah mesin melakukan boot ulang), atau luncurkan konsol dari direktori ini.

AppCenter terhubung ke akun BitBucket yang salah?

Untuk mengatasi masalah ini, Anda perlu memutuskan tautan akun BitBucket Anda dari AppCenter. Kami masuk ke akun BitBucket yang salah dan membuka profil pengguna.

Integrasi AppCenter dan GitLab

Selanjutnya, buka Pengaturan > Manajemen Akses > OAuth

Integrasi AppCenter dan GitLab

Klik Cabut untuk memutuskan tautan akun Anda.

Integrasi AppCenter dan GitLab

Setelah ini, Anda harus masuk dengan akun BitBucket yang diperlukan.
* Sebagai upaya terakhir, bersihkan juga cache browser Anda.

Sekarang mari kita pergi ke AppCenter. buka bagian Build, klik Putuskan sambungan akun BitBucket

Integrasi AppCenter dan GitLab

Ketika akun lama dibatalkan tautannya, kami menautkan kembali AppCenter. Sekarang ke akun yang diinginkan.

'eval' tidak dikenali sebagai perintah internal atau eksternal

Kami menggunakannya sebagai pengganti perintah

  - eval $(ssh-agent -s)

Tim:

  - ssh-agent

Dalam beberapa kasus, Anda harus menentukan jalur lengkap ke C:Program FilesGitusrbinssh-agent.exe, atau menambahkan jalur ini ke variabel sistem pada mesin tempat pelari berjalan

AppCenter Build sedang mencoba meluncurkan build untuk sebuah proyek dari repositori bitBucket yang sudah ketinggalan zaman

Dalam kasus saya, masalah muncul karena saya bekerja dengan banyak akun. Saya memutuskan untuk menghapus cache.

Sumber: www.habr.com

Tambah komentar