Memahami tag CI Gitlab

Saya sudah membaca dokumentasi, beberapa artikel dan Anda mungkin menyebut saya bodoh, tetapi ini adalah pertama kalinya saya bekerja dengan konsep seperti ini.

  • Saya telah mendaftarkan runner dengan tag "testing"
  • membuat tag "testing" di gitlab
  • mengikat runner ini, dengan proyek tertentu
  • Saya juga menambahkan tag yang sama misalnya "testing"di repo lokal saya.

Tetapi bagaimana tepatnya menjalankan pekerjaan saya bergantung pada tag tersebut? Apakah semua operasi ini diperlukan? Jika saya mendorong kode baru ke repo, file *.yml tetap dijalankan sejauh yang saya uji.

Jadi bagaimana jika saya ingin menjalankan build hanya ketika saya mendefinisikan versi dalam sebuah komit?

IDK...

   git commit --tags "v. 2.0" -m "this is version 2.0" (probably not right)

Tapi tentu saja harus universal, jadi saya tidak harus selalu memberi tahu, tag mana yang harus digunakan untuk memicu pelari, tetapi misalnya biarkan dia mengenali nilai numerik.

Seperti yang Anda lihat, saya cukup bingung.... Jika Anda bisa menguraikan bagaimana tepatnya tag bekerja, jadi saya akan dapat memahami konsepnya, saya akan sangat berterima kasih.

Larutan

Tag untuk GitLab CI dan tag untuk Git adalah dua konsep yang berbeda.

Ketika anda menulis .gitlab-ci.yml, anda dapat menentukan beberapa pekerjaan dengan tag testing. Jika runner dengan tag ini tersedia, maka runner akan mengambil pekerjaan tersebut.

Di Git, di dalam repositori Anda, tag digunakan untuk menandai komit tertentu. Ini sering digunakan untuk tag versi.

Kedua konsep ini dapat tercampur ketika Anda menggunakan tag (di Git) untuk memulai pipeline Anda di GitLab CI. Dalam .gitlab-ci.yml, Anda dapat menentukan bagian hanya dengan tag.

Lihat dokumentasi GitLab untuk tag dan only.

Contohnya adalah ketika Anda mendorong tag dengan git:

$ git tag -a 1.0.0 -m "1.0.0"
$ git push origin 1.0.0

Dan sebuah job di .gitlab-ci.yml seperti ini:

compile:
    stage: build
    only: [tags]
    script:
        - echo Working...
    tags: [testing]    

akan mulai menggunakan runner dengan tag testing.

Menurut pemahaman saya, apa yang hilang dalam langkah Anda adalah menentukan tag testing ke runner Anda. Untuk melakukan ini, masuk ke GitLab ke dalam proyek Anda. Di samping Wiki, klik Pengaturan. Pergi ke CI/CD Pipelines dan di sana Anda memiliki runner Anda. Di sebelah Guid, klik pada ikon pena. Pada halaman berikutnya tag dapat dimodifikasi.

Komentar (2)

Apakah semua operasi ini diperlukan?

Tidak, jika Anda hanya memiliki satu pelari, atau jika Anda memiliki banyak pelari tetapi tidak peduli pelari mana yang menjalankan pekerjaan Anda, maka tidak ada gunanya menandai pelari/pekerjaan.

Jadi bagaimana jika saya ingin menjalankan build hanya ketika saya mendefinisikan sebuah versi dalam sebuah commit?

job:
  only:
    - tags
Komentar (0)