Jalankan perintah Git dalam skrip
| Azure DevOps Services Azure DevOps Server 2020 | | Azure DevOps Server 2019 TFS 2018
Catatan
Di Microsoft Team Foundation Server (TFS) 2018 dan versi sebelumnya, alur build dan rilis disebut definisi, eksekusi disebut build, koneksi layanan disebut titik akhir layanan, tahapan disebut lingkungan, dan pekerjaan disebut fase.
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
Buka halaman pengaturan proyek untuk organisasi Anda di Organisasi Pengaturan>ProyekUmum>.
Pilih proyek yang ingin Anda edit.
Dalam Project Pengaturan, pilih Repositori. Pilih repositori tempat Anda ingin menjalankan perintah Git.
Pilih Keamanan untuk mengedit keamanan repositori Anda.
Cari Project Collection Build Service. Pilih identitas Project Collection Build Service ({organisasi Anda}) (bukan grup Project Collection Build Service Accounts ({organisasi Anda})). Secara default, identitas ini dapat membaca dari repositori tetapi tidak dapat mendorong perubahan apa pun kembali ke repositori tersebut. Berikan izin yang diperlukan untuk perintah Git yang ingin Anda jalankan. Biasanya Anda ingin memberikan:
- Buat cabang: Memungkinkan
- Berkontribusi: Memungkinkan
- Membaca: Memungkinkan
- Buat tag: Memungkinkan
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

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


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 kembali ke repositori tersebut.

Berikan izin yang diperlukan untuk perintah Git yang ingin Anda jalankan. Biasanya Anda ingin memberikan:
- Buat cabang: Memungkinkan
- Berkontribusi: Memungkinkan
- Membaca: Memungkinkan
- Buat tag: Memungkinkan
Setelah selesai memberikan izin, pastikan untuk memilih Simpan perubahan.
Perbolehkan skrip mengakses token sistem
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.
- Urungkan perubahan konfigurasi git.
Jika Anda mengalami masalah saat menggunakan agen lokal, pastikan repositori bersih:
Pada tab repositori, atur Bersihkan ke true.
Pada tab variabel, buat atau ubah
Build.Cleanvariabel 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: gitArgumen: 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?
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 atau deskripsi penerapan 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 di bawah ini. Ini didukung untuk penerapan ke Azure Repos Git, Bitbucket Cloud, GitHub, dan GitHub Enterprise Server.
[skip ci]atau[ci skip]skip-checks: trueatauskip-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 mengantre build atau rilis saya. Bagaimana cara memperbaikinya?
Lihat Kumpulan agen.
Tugas push NuGet saya gagal dengan kesalahan berikut: "Kesalahan: tidak bisa mendapatkan sertifikat penerbit lokal". Bagaimana aku bisa memperbaiki ini?
Ini dapat diperbaiki dengan menambahkan sertifikat akar tepercaya. Anda dapat menambahkan NODE_EXTRA_CA_CERTS=file variabel lingkungan ke agen build, atau Anda dapat menambahkan NODE.EXTRA.CA.CERTS=file variabel tugas di alur Anda. Lihat dokumentasiNode.js untuk detail selengkapnya tentang variabel ini. 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.