Megosztás a következőn keresztül:


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

  1. Nyissa meg a szervezet projektbeállítási lapját a Szervezeti Gépház> General-projekteknél.>

    Válassza ki a szervezeti beállításokat.

  2. Jelölje ki a szerkeszteni kívánt projektet.

    Válassza ki a projektet.

  3. 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.

  4. Válassza a Biztonság lehetőséget az adattár biztonságának szerkesztéséhez.

    Válassza a Biztonság lehetőséget az adattár biztonságának szerkesztéséhez.

  5. 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

projekt kezelése

Ha ezt a lapot látja, válassza ki az adattárat, majd válassza a hivatkozást:

vezérlőpult a projekt tetején

vezérlőpult project version control tab

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.

engedélyek

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ótBuild.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?

Batch-szkript

Parancssor

PowerShell

Héjszkript

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 vagy skip-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.