Penyebaran otomatis fungsi tanpa server dari Git

gambar

Menggunakan bot gitlab sebagai contoh, saya akan menunjukkan bagaimana mengotomatiskan proses rilis untuk fungsi-fungsi tanpa server dengan secara otomatis memperbarui mereka dari repositori git. Kami beralih dari game ke pengembangan praktis di serverless.

Apa itu bot gitlab?


Bayangkan Anda perlu mengotomatiskan proses reaksi untuk membuat tugas / bug di pelacak Anda, misalnya Gitlab (Masalah) atau Jira. Anda mungkin perlu menambahkan artis secara otomatis tergantung pada tag, memindahkan tugas ke tonggak tertentu, menambahkan komentar, atau hanya menutup bug jahat. Semua ini sangat mudah dilakukan menggunakan fungsi tanpa server. Sebagai contoh, kami akan menambahkan komentar (Catatan dalam terminologi Gitlab) ke tugas yang baru dibuat (Masalah).

Dan karena bot dapat sering berubah, kami akan mengotomatiskan rilisnya dengan secara otomatis menyinkronkan fungsi dengan repositori git di mana ia berada.

Pengaturan lingkungan


Pertama, kita perlu membuat proyek di Gitlab. Jika Anda tidak memiliki akun Gitlab, Anda dapat membuatnya di sini . Anda dapat membuat proyek publik baru, misalnya, dengan memalsukan proyek saya https://gitlab.com/bbelky/gitbotswf dengan mengklik tombol Fork di sudut kanan atas.

gambar

Untuk dapat mengedit kode bot, Anda harus mengkloningnya secara lokal. Bahkan, untuk keperluan panduan ini, kita bisa melakukan ini secara online, tetapi kita akan lebih dekat dengan kehidupan nyata. Buka terminal Anda dan tiru repositori git. Tautan dapat ditemukan di sudut kanan atas proyek Anda Clone > Clone with HTTPS . Simpan sebagai URL Gitlab , itu akan tetap berguna bagi kita.

git clone <link to your repo> cd gitbotswf/ ls README.md main.go 

Ada file main.go di repositori hasil kloning. Ini bot kami ditulis dalam golang. Bot sangat sederhana: ia menerima webhook dari Gitlab pada saat pembuatan tugas baru (Masalah) dan menambahkan komentar (catatan dalam terminologi Gitlab) untuk tugas yang dibuat. Ada komentar di main.go untuk membantu Anda mengetahui cara kerja bot. Kami tidak akan membahas hal ini secara lebih rinci.

Jangan tutup terminal - beberapa saat kemudian kita perlu mengedit file main.go.

Kita juga perlu membuat API Token Gitlab untuk mengakses API hitlab.

  1. Buka profil Gitlab Anda> Pengaturan > Token Akses.
  2. Buat token baru dengan lingkup api.
  3. Salin dan simpan sebagai GITLABTOKEN .

Bot


Saatnya membuat bot itu sendiri. Mari kita membuat fungsi tanpa server dengan kode bot kami berdasarkan pada platform tanpa server Swifty . Jika Anda belum memiliki akun di Rusonyx Swifty, maka sekarang saatnya untuk membuatnya . Kami ingin mengotomatiskan proses penerapan fungsi baru, jadi mari kita lakukan urutan berikut: hubungkan repositori git kami, buat fungsi berdasarkan kode dari git, dan masukkan token api gitlab dalam repositori aman.

gambar

  1. Masuk ke Swifty dan pilih Repositori
  2. Klik Lampirkan Repo , pilih jenis URL Git dan rekatkan URL Gitlab Anda.
  3. Ingatlah untuk memilih opsi repositori Mirror secara otomatis dan klik Done.

gambar

Sekarang Swifty akan secara otomatis menyinkronkan dengan repositori Anda (jangan tarik git) setiap 30 menit. Sekarang buat fungsinya sendiri:

  1. Pergi ke Fungsi > Fungsi Baru > Dari tab repo (Templat) .
  2. Pilih repositori yang baru ditambahkan, misalnya, gitlab.com/bbelky/gitbotswf.git . Sekarang Anda melihat file dari repositori Anda.
  3. Pilih file main.go , klik Berikutnya.
  4. Pilih opsi Sinkronkan dengan repositori , masukkan nama fungsi gitbotswf, dan klik Buat .

gambar

Sekarang kita membutuhkan pemicu HTTP API, ketika dipanggil, fungsinya akan diaktifkan:

  1. Buka tab Pemicu > Tambah Pemicu > REST API (URL) .
  2. Salin URL yang dihasilkan dan simpan sebagai BOT_URL .

gambar

Hebat, sekarang kami memiliki repositori dan fungsi yang disinkronkan dengannya secara otomatis. Sekarang tambahkan Token API Gitlab kami ke Akun Swifty - repositori aman dan terenkripsi untuk kata sandi dan token.

  1. Buka Akun > Buat Akun .
  2. Pilih Jenis Generik .
  3. Beri nama GITLABTOKEN dan salin token Anda. Simpan.

gambar

Sekarang tambahkan token ke fungsi:

  1. Pergi ke Fungsi > fungsi gitbotswf > Akses dan klik Tambah .
  2. Pilih jenis Akun , GITLABTOKEN dan klik Tambah .

Nyalakan webhook


Pada tahap terakhir, kita perlu membuat webhook di Gitlab yang akan diaktifkan setiap kali Isu baru dibuat. Mari kita beralih ke Gitlab.

  1. Pilih proyek Anda> Pengaturan > Integrasi .
  2. Tambahkan BOT_URL yang sebelumnya disimpan ke bidang URL .
  3. Centang kotak di sebelah Masalah acara dan klik Tambahkan webhook .

Tes


Mari kita pergi ke proyek di Gitlab, pada tab Masalah dan membuat Masalah baru. Periksa komentarnya. Ya! Jika semuanya bekerja dengan baik, maka kita akan melihat komentar "Terima kasih telah melaporkan masalah baru!" . Jika terjadi kesalahan di suatu tempat, tanyakan kami di sini atau ajukan pertanyaan di slot .

Perbarui dan rilis otomatis bot


Bagaimana jika kita perlu memperbarui bot kita? Berkat integrasi dengan git, semua yang perlu Anda lakukan adalah memperbarui kode Anda (ubah teks catatan, misalnya), jalankan kode di Gitlab dan Swifty akan secara otomatis memperbarui fungsi Anda!

Jadi, buka file main.go di terminal dan ubah variabel note :

 note := "Comments%20changed!" 

Perbarui git:

 git add * git commit -m "changes" git push origin master 

Pergi tanpa server!

Source: https://habr.com/ru/post/id439920/


All Articles