Jalankan perintah Git dalam skrip

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Untuk beberapa alur kerja, Anda memerlukan alur build untuk menjalankan perintah Git. Misalnya, setelah build CI pada cabang fitur selesai, tim mungkin ingin menggabungkan cabang ke utama.

Git tersedia di agen yang dihosting Microsoft dan agen lokal.

Mengaktifkan skrip untuk menjalankan perintah Git

Catatan

Sebelum memulai, pastikan identitas default akun Anda diatur dengan kode berikut. Ini harus dilakukan sebagai langkah pertama setelah memeriksa kode Anda.

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

Memberikan izin kontrol versi ke layanan build

  1. Buka halaman pengaturan proyek untuk organisasi Anda di Organisasi Pengaturan> Proyek Umum.>

    Pilih pengaturan organisasi Anda.

  2. Pilih proyek yang ingin Anda edit.

    Pilih proyek Anda.

  3. Dalam Pengaturan Proyek, pilih Repositori. Pilih repositori tempat Anda ingin menjalankan perintah Git.

  4. Pilih Keamanan untuk mengedit keamanan repositori Anda.

    Pilih Keamanan untuk mengedit keamanan repositori Anda.

  5. Cari Project Collection Build Service. Pilih identitas {{nama proyek Anda}} Layanan Build ({organisasi Anda}) (bukan grup Akun Layanan Build Koleksi Proyek ({organisasi Anda})). Secara default, identitas ini dapat membaca dari repositori tetapi tidak dapat mendorong perubahan apa pun ke dalamnya. Berikan izin yang diperlukan untuk perintah Git yang ingin Anda jalankan. Biasanya Anda ingin memberikan:

    • Membuat cabang: Izinkan
    • Kontribusi: Izinkan
    • Baca: Izinkan
    • Buat tag: Izinkan

Masuk ke tab panel kontrol Kontrol Versi

  • Azure Repos: https://dev.azure.com/{your-organization}/{your-project}/_admin/_versioncontrol

  • Lokal: https://{your-server}:8080/tfs/DefaultCollection/{your-project}/_admin/_versioncontrol

mengelola proyek

Jika Anda melihat halaman ini, pilih repositori, lalu pilih tautan:

panel kontrol atas ke proyek

tab kontrol versi proyek panel kontrol

Pada tab Kontrol Versi, pilih repositori tempat Anda ingin menjalankan perintah Git, lalu pilih Project Collection Build Service. Secara default, identitas ini dapat membaca dari repositori tetapi tidak dapat mendorong perubahan apa pun ke dalamnya.

permissions

Berikan izin yang diperlukan untuk perintah Git yang ingin Anda jalankan. Biasanya Anda ingin memberikan:

  • Membuat cabang: Izinkan
  • Kontribusi: Izinkan
  • Baca: Izinkan
  • Buat tag: Izinkan

Setelah selesai memberikan izin, pastikan untuk memilih Simpan perubahan.

Perbolehkan skrip mengakses token sistem

checkout Tambahkan bagian dengan persistCredentials diatur ke true.

steps:
- checkout: self
  persistCredentials: true

Pelajari selengkapnya tentang checkout.

Pada tab opsi, pilih Izinkan skrip untuk mengakses token OAuth.

Pastikan untuk membersihkan repositori lokal

Jenis perubahan tertentu pada repositori lokal tidak secara otomatis dibersihkan oleh alur build. Jadi pastikan untuk:

  • Hapus cabang lokal yang Anda buat.
  • Batalkan perubahan konfigurasi git.

Jika Anda mengalami masalah saat menggunakan agen lokal, pastikan repositori bersih:

Pastikan checkout telah clean diatur ke true.

steps:
- checkout: self
  clean: true
  • Pada tab repositori, atur Bersihkan ke true.

  • Pada tab variabel, buat atau ubah Build.Clean variabel dan atur kesource

Contoh

Mencantumkan file di repositori Anda

Pada tab build, tambahkan tugas ini:

Tugas Argumen

Utilitas: Baris Perintah
Cantumkan file di repositori Git.
Alat: git

Argumen: ls-files

Menggabungkan cabang fitur ke utama

Anda ingin build CI digabungkan ke utama jika build berhasil.

Pada tab Pemicu, pilih Integrasi berkelanjutan (CI) dan sertakan cabang yang ingin Anda bangun.

Buat merge.bat di akar repositori Anda:

@echo off
ECHO SOURCE BRANCH IS %BUILD_SOURCEBRANCH%
IF %BUILD_SOURCEBRANCH% == refs/heads/main (
   ECHO Building main branch so no merge is needed.
   EXIT
)
SET sourceBranch=origin/%BUILD_SOURCEBRANCH:refs/heads/=%
ECHO GIT CHECKOUT MAIN
git checkout main
ECHO GIT STATUS
git status
ECHO GIT MERGE
git merge %sourceBranch% -m "Merge to main"
ECHO GIT STATUS
git status
ECHO GIT PUSH
git push origin
ECHO GIT STATUS
git status

Pada tab build tambahkan ini sebagai tugas terakhir:

Tugas Argumen

Utilitas: Skrip Batch
Jalankan merge.bat.
Jalur: merge.bat

FAQ

Dapatkah saya menjalankan perintah Git jika repositori jarak jauh saya berada di GitHub atau layanan Git lain seperti Bitbucket Cloud?

Ya

Tugas mana yang dapat saya gunakan untuk menjalankan perintah Git?

Skrip Batch

Baris Perintah

PowerShell

Skrip Shell

Bagaimana cara menghindari pemicu build CI saat skrip mendorong?

Tambahkan ***NO_CI*** ke pesan penerapan Anda. Berikut adalah contohnya:

  • git commit -m "This is a commit message ***NO_CI***"
  • git merge origin/features/hello-world -m "Merge to main ***NO_CI***"

Tambahkan [skip ci] ke pesan penerapan atau deskripsi Anda. Berikut adalah contohnya:

  • git commit -m "This is a commit message [skip ci]"
  • git merge origin/features/hello-world -m "Merge to main [skip ci]"

Anda juga dapat menggunakan salah satu variasi ini untuk penerapan ke Azure Repos Git, Bitbucket Cloud, GitHub, dan GitHub Enterprise Server.

  • [skip ci] atau [ci skip]
  • skip-checks: true atau skip-checks:true
  • [skip azurepipelines] atau [azurepipelines skip]
  • [skip azpipelines] atau [azpipelines skip]
  • [skip azp] atau [azp skip]
  • ***NO_CI***

Apakah saya memerlukan agen?

Anda memerlukan setidaknya satu agen untuk menjalankan build atau rilis Anda.

Aku mengalami masalah. Bagaimana cara memecahkan masalahnya?

Lihat Memecahkan Masalah Build dan Rilis.

Saya tidak dapat memilih kumpulan agen default dan saya tidak dapat mengantrekan build atau rilis saya. Bagaimana cara memperbaikinya?

Lihat Kumpulan agen.

Tugas dorong NuGet saya gagal dengan kesalahan berikut: "Kesalahan: tidak bisa mendapatkan sertifikat penerbit lokal". Bagaimana aku bisa memperbaiki ini?

Hal ini dapat diperbaiki dengan menambahkan sertifikat akar tepercaya. Anda dapat menambahkan NODE_EXTRA_CA_CERTS=file variabel lingkungan pada agen build, atau Anda dapat menambahkan NODE.EXTRA.CA.CERTS=file variabel tugas di alur Anda. Harap lihat dokumentasiNode.js untuk detail selengkapnya tentang variabel ini. Harap lihat Mengatur variabel dalam alur untuk instruksi tentang mengatur variabel di alur Anda.

Saya menggunakan TFS lokal dan saya tidak melihat beberapa fitur ini. Mengapa bukan?

Beberapa fitur ini hanya tersedia di Azure Pipelines dan belum tersedia secara lokal. Beberapa fitur tersedia secara lokal jika Anda telah meningkatkan ke TFS versi terbaru.