Git-parancsok futtatása szkriptben
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Egyes munkafolyamatok esetében buildelési folyamatára van szüksége a Git-parancsok futtatásához. Ha például elkészült egy CI-build egy funkcióágon, előfordulhat, hogy a csapat egyesíteni szeretné az ágat a főággal.
A Git a Microsofttól bérelt ügynökökön és a helyszíni ügynökökön érhető el.
Szkriptek engedélyezése Git-parancsok futtatásához
Feljegyzés
Mielőtt hozzákezdene, győződjön meg arról, hogy a fiók alapértelmezett identitása az alábbi kóddal van beállítva. Ezt a kódot az első lépésként kell elvégezni a kód kivétele után.
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
Verziókövetési engedélyek megadása a buildelési szolgáltatáshoz
Nyissa meg a szervezet projektbeállítási lapját a Szervezeti Gépház> General-projekteknél.>
Jelölje ki a szerkeszteni kívánt projektet.
A Project Gépház válassza az Adattárak lehetőséget. Válassza ki azt az adattárat, amelyen Git-parancsokat szeretne futtatni.
Válassza a Biztonság lehetőséget az adattár biztonságának szerkesztéséhez.
Keresse meg a Project Collection buildszolgáltatást. Válassza ki a(z) {{a projekt neve}} buildszolgáltatás ({a szervezet}) identitást (nem a csoport Projektgyűjtemény buildszolgáltatás-fiókjait ({a szervezet})). Alapértelmezés szerint ez az identitás beolvasható az adattárból, de nem tudja visszaküldni a módosításokat. Adjon meg engedélyeket a futtatni kívánt Git-parancsokhoz. Általában a következőt kell megadnia:
- Ág létrehozása: Engedélyezés
- Közreműködés: Engedélyezés
- Olvasás: Engedélyezés
- Címke létrehozása: Engedélyezés
Ugrás a Verziókövetés panel lapjára
Azure-adattárak:
https://dev.azure.com/{your-organization}/{your-project}/_admin/_versioncontrol
Helyszíni:
https://{your-server}:8080/tfs/DefaultCollection/{your-project}/_admin/_versioncontrol
Ha ezt a lapot látja, válassza ki az adattárat, majd válassza a hivatkozást:
A Verziókövetés lapon válassza ki azt az adattárat, amelyben Git-parancsokat szeretne futtatni, majd válassza a Project Collection Build Service lehetőséget. Alapértelmezés szerint ez az identitás beolvasható az adattárból, de nem tudja visszaküldni a módosításokat.
Adjon meg engedélyeket a futtatni kívánt Git-parancsokhoz. Általában a következőt kell megadnia:
- Ág létrehozása: Engedélyezés
- Közreműködés: Engedélyezés
- Olvasás: Engedélyezés
- Címke létrehozása: Engedélyezés
Ha befejezte az engedélyek megadását, válassza a Módosítások mentése lehetőséget.
A szkriptek hozzáférésének engedélyezése a rendszerjogkivonathoz
Adjon hozzá egy szakaszt checkout
a következő beállítással persistCredentials
true
: .
steps:
- checkout: self
persistCredentials: true
További információ: checkout
.
A Beállítások lapon válassza az OAuth-jogkivonat elérésének engedélyezése szkriptek számára lehetőséget.
Győződjön meg arról, hogy megtisztítja a helyi adattárat
A helyi adattár bizonyos módosításait a buildelési folyamat nem távolítja el automatikusan. Ezért győződjön meg arról, hogy:
- Törölje a létrehozott helyi ágakat.
- Git-konfiguráció módosításainak visszavonása.
Ha problémákba ütközik egy helyszíni ügynökkel, győződjön meg arról, hogy az adattár tiszta:
Győződjön meg arról, hogy checkout
be van clean
állítva.true
steps:
- checkout: self
clean: true
Az adattár lapon állítsa a Tiszta értéket igaz értékre.
A változók lapon hozza létre vagy módosítsa a változót
Build.Clean
, és állítsa be a következőre:source
Példák
Az adattárban lévő fájlok listázása
A Build lapon adja hozzá a következő feladatot:
Task | Argumentumok |
---|---|
Segédprogram: Parancssor Sorolja fel a Git-adattárban lévő fájlokat. |
Eszköz: git Argumentumok: ls-files |
Funkcióág egyesítése a főágra
Ha a build sikeres, a CI-buildek fő egyesítését szeretné elvégezni.
Az Eseményindítók lapon válassza a Folyamatos integráció (CI) lehetőséget, és adja meg a létrehozni kívánt ágakat.
Létrehozás merge.bat
az adattár gyökerénél:
@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
A Build lapon adja hozzá a következőt az utolsó feladatként:
Task | Argumentumok |
---|---|
Segédprogram: Batch-szkript Futtassa a merge.bat. |
Elérési út: merge.bat |
GYIK
Futtathatok Git-parancsokat, ha a távoli adattár a GitHubon vagy egy másik Git-szolgáltatásban, például a Bitbucket Cloudban található?
Igen
Milyen feladatokkal futtathatok Git-parancsokat?
Hogyan ne aktiváljon CI-buildet a szkript leküldésekor?
Adja hozzá ***NO_CI***
a véglegesítési üzenethez. Például:
git commit -m "This is a commit message ***NO_CI***"
git merge origin/features/hello-world -m "Merge to main ***NO_CI***"
Adja hozzá [skip ci]
a véglegesítési üzenethez vagy a leíráshoz. Például:
git commit -m "This is a commit message [skip ci]"
git merge origin/features/hello-world -m "Merge to main [skip ci]"
Ezen változatok bármelyikét használhatja az Azure Repos Git, a Bitbucket Cloud, a GitHub és a GitHub Enterprise Server véglegesítéséhez is.
[skip ci]
vagy[ci skip]
skip-checks: true
vagyskip-checks:true
[skip azurepipelines]
vagy[azurepipelines skip]
[skip azpipelines]
vagy[azpipelines skip]
[skip azp]
vagy[azp skip]
***NO_CI***
Szükségem van ügynökre?
A build vagy kiadás futtatásához legalább egy ügynökre van szüksége.
Problémáim vannak. Hogyan háríthatom el őket?
Lásd: Build és kiadás hibaelhárítása.
Nem tudok alapértelmezett ügynökkészletet kijelölni, és nem tudom várólistára helyezhetem a buildet vagy a kiadást. Hogyan oldhatom meg ezt a problémát?
Lásd: Ügynökkészletek.
A NuGet-leküldéses feladatom a következő hibával meghiúsul: "Hiba: nem lehet lekérni a helyi kiállító tanúsítványát". Hogyan javíthatom ki ezt a problémát?
Ezt egy megbízható főtanúsítvány hozzáadásával lehet kijavítani. Hozzáadhatja a NODE_EXTRA_CA_CERTS=file
környezeti változót a buildügynökhöz, vagy hozzáadhatja a NODE.EXTRA.CA.CERTS=file
feladatváltozót a folyamathoz. A változóval kapcsolatos további részletekért tekintse meg a Node.js dokumentációját. A változók folyamatbeli beállításával kapcsolatos utasításokért lásd: Változók beállítása folyamatokban.
A helyszíni TFS-t használom, és ezek közül néhányat nem látok. Miért igaz a fenti mondat?
Ezen funkciók némelyike csak az Azure Pipelinesban érhető el, és még nem érhető el a helyszínen. Egyes funkciók a helyszínen is elérhetők, ha a TFS legújabb verziójára frissített.