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
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
Kunci yang dihasilkan terlihat seperti ini:
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
Bagus, selanjutnya Anda perlu menambahkan kunci publik ke BitBucket. Untuk melakukan ini, buka repositori dan buka Pengaturan > Tombol Akses.
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.
Tentukan bahasa/platform
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
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.
Selanjutnya, buka Pengaturan > Manajemen Akses > OAuth
Klik Cabut untuk memutuskan tautan akun Anda.
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
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