Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
A Git-parancsok a Microsoft által üzemeltetett és saját üzemeltetésű ügynökökkel készült munkafolyamatokhoz érhetők el. Ha például egy szolgáltatáságon befejeződik egy folyamatos integrációs (CI) build, egyesítheti az ágat a főágra. Ez a cikk bemutatja, hogyan futtathat Git-parancsokat az Azure Pipelines buildszkriptjeiben.
Szkriptek engedélyezése Git-parancsok futtatásához
Győződjön meg arról, hogy a GitHub az Azure DevOps-fiók alapértelmezett identitását használja. Ha szükséges, állítsa be a GitHub-felhasználót a kivétel utáni első lépésként.
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
Engedélyek megadása a buildelési szolgáltatáshoz
A projekt buildelési szolgáltatásának engedéllyel kell rendelkeznie a forrásadattárba való íráshoz. Állítsa be a szükséges engedélyeket az alábbiak szerint:
A projekt Projektbeállítások területén válassza az Adattáraklehetőséget.
A Minden adattár lapon válassza a Biztonság lehetőséget a projekt összes adattárának engedélyeinek beállításához. Vagy válassza ki azt az adattárat, amelyen Git-parancsokat szeretne futtatni, majd válassza a Biztonság lehetőséget az adattár oldalán.
A Felhasználói engedélyek lapon válassza ki a Build Service identitást. Ügyeljen arra, hogy a < területen válassza ki >a Build Service (<szervezet>) projektnevet, nem pedig a Project Collection Build Service-fiókokat. Alapértelmezés szerint ez az identitás beolvasható az adattárból, de nem tudja leküldni a módosításokat.
Legördülő listából válassza az Engedélyezés lehetőséget a futtatni kívánt Git-parancsokhoz szükséges összes engedély mellett, általában ág létrehozása, Közreműködés, Olvasás és Létrehozás címkével.
A szkriptek hozzáférésének engedélyezése a rendszerjogkivonathoz
Annak engedélyezése, hogy a szkriptek hozzáférjenek a GitHub OAuth-jogkivonathoz:
Adjon hozzá egy checkout lépést a YAML-folyamathoz a következő beállítással persistCredentialstrue: .
steps:
- checkout: self
persistCredentials: true
A lépésről további információt a checkout definícióban steps.checkout talál.
A helyi adattár tisztítása
A buildelési folyamat nem törli automatikusan a helyi adattár bizonyos módosításait, például a helyi ágak törlését vagy a helyi git config módosítások visszavonását. Ha problémákba ütközik egy saját üzemeltetésű ügynökkel, a build futtatása előtt törölheti az adattárat.
Általánosságban elmondható, hogy a saját üzemeltetésű ügynökök gyorsabb teljesítménye érdekében ne tisztítsa meg az adattárat. A tisztítás nem hatékony a Microsoft által üzemeltetett ügynökök számára, mert minden alkalommal új ügynököt használnak. További információ: Az ügynök helyi adattárának törlése.
Az adattár megtisztítása a build futtatása előtt:
Állítsa be clean a truecheckout lépésben. Ez a beállítás a beolvasás előtt fut git clean -ffdxgit reset --hard HEAD .
steps:
- checkout: self
clean: true
Válassza ki a változókat a folyamatszerkesztőben, hozza létre vagy módosítsa a változót Build.Clean , és állítsa az értékét a következőre source: .
Példák Git-parancsokra
Az alábbi példák Git-parancsokat futtatnak egy parancssori feladatban és egy Batch-szkriptfeladatban .
Az adattárban lévő fájlok listázása
A Git-adattárban lévő fájlok listázásához használja egy YAML-folyamat parancssori feladatát az alábbiak szerint:
- task: CmdLine@2
inputs:
script: 'git ls-files'
Funkcióág egyesítése a főágra
A következő klasszikus folyamat példája egyesíti a CI-buildeket, main ha a build sikeres.
Hozzon létre egy merge.bat nevű fájlt az adattár gyökerénél a következő tartalommal:
@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 statusA klasszikus folyamat Eseményindítók lapján jelölje be a jelölőnégyzetet a folyamatos integráció engedélyezéséhez.
Az Elágazási szűrők és az Elérési út szűrők területen válassza ki azokat az ágakat és elérési utakat, hogy belefoglalják vagy kizárják a buildből.
Adjon hozzá egy Batch-szkriptet a folyamat utolsó feladataként.
A feladatkonfiguráció Elérési útja területén adja meg a merge.bat fájl helyét és nevét.
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, akkor futtathat 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ó.
Milyen feladatokkal futtathatok Git-parancsokat?
A Git-parancsok futtatásához az alábbi Azure Pipelines-feladatokat használhatja:
Hogyan kerülhetem el a CI-buildek aktiválását a szkript leküldésekor?
Annak érdekében, hogy a szkript leküldésekor ne aktiváljon CI-buildet, 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]"
Az alábbi változatok bármelyikét használhatja az Azure Repos Git, a Bitbucket Cloud, a GitHub vagy a GitHub Enterprise Server véglegesítéséhez:
-
[skip ci]vagy[ci skip] -
skip-checks: truevagyskip-checks:true -
[skip azurepipelines]vagy[azurepipelines skip] -
[skip azpipelines]vagy[azpipelines skip] -
[skip azp]vagy[azp skip] ***NO_CI***
Szükségem van egy ügynökre a folyamatok futtatásához?
Igen, legalább egy ügynökre van szüksége a buildelési vagy kiadási folyamat futtatásához.
Hogyan háríthatom el a problémákat?
Lásd a folyamatfuttatások hibaelhárítását.
Hogyan javíthatom ki, hogy nem tudok alapértelmezett ügynökkészletet kiválasztani vagy várólistára tenni a folyamatfuttatást?
Lásd: Ügynökkészletek létrehozása és kezelése.
Hogyan javíthatom ki a NuGet leküldéses feladatom sikertelen voltát a "Hiba: nem lehet helyi kiállítói tanúsítványt lekérni"?
Ezt a problémát egy megbízható főtanúsítvány hozzáadásával háríthatja el. Adja hozzá a környezeti változót a NODE_EXTRA_CA_CERTS=file buildügynökhöz, vagy adja hozzá a NODE.EXTRA.CA.CERTS=file feladatváltozót a folyamathoz.
A változóról további információt a Node.js dokumentációjában NODE_EXTRA_CA_CERTS =fájlban talál. A folyamat változóinak beállításával kapcsolatos utasításokért tekintse meg a folyamat változóinak beállítása című témakört.
Miért nem látom ezeket a funkciókat a helyszíni Azure DevOps Serveren?
Ezen funkciók némelyike csak az Azure DevOps Services szolgáltatásban érhető el, és nem érhető el a helyszíni Azure DevOps Serverhez. Egyes funkciók csak az Azure DevOps Server legújabb verziójában érhetők el.