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 Microsoft által üzemeltetett és önállóan üzemeltetett-ügynökök buildelési munkafolyamataihoz érhetők el. Ha például egy funkcióágon befejeződik egy folyamatos integrációs (CI) build, összevonhatja az ágat a main ággal. Ez a cikk azt ismerteti, hogyan futtathat Git-parancsokat Azure Pipelines buildelési szkriptekben.
Szkriptek engedélyezése Git-parancsok futtatásához
Győződjön meg arról, hogy a Git a Azure DevOps-fiók alapértelmezett identitását használja. Ha szükséges, állítsa be a Git-felhasználót a checkout 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 project Project Beállítások területén válassza a Repositories lehetőséget a Repos területen.
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. Mindenképpen válassza ki a <projekt nevét> Build Service (<organization>) a Felhasználók területen, nem a Projekt gyűjtemény Build Service fiókok-at. 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 minden szükséges engedély mellett a futtatni kívánt Git-parancsokhoz, általában Ág létrehozása, Közreműködés, Olvasás és Címke létrehozása.
A szkriptek hozzáférésének engedélyezése a rendszerjogkivonathoz
Ha engedélyezni szeretné, 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
További információért a checkout lépésről lásd a steps.checkout definíciót.
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 Microsoft által üzemeltetett ügynökök esetében, 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 true a checkout lépésben. Ez a beállítás a beolvasás előtt futtatja a git clean -ffdx-t, majd a git reset --hard HEAD-t.
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 csővezeték példája egy CI-buildet egyesít 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áram GitHub vagy egy másik Git-szolgáltatásban, például a Bitbucket Cloudban van?
Igen, akkor futtathat Git-parancsokat, ha a távoli adattár GitHub 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, hogy a szkript leküldésekor a CI build folyamata elinduljon?
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 a commitokhoz az Azure Repos Git, a Bitbucket Cloud, a GitHub vagy a GitHub Enterprise Server szolgáltatásba:
-
[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 feltöltési feladatom sikertelenségét, amikor a "Hiba: nem sikerült lekérni a helyi kibocsátó tanúsítványát" üzenet jelenik meg?
Ezt a problémát egy megbízható főtanúsítvány hozzáadásával háríthatja el. Adja hozzá az NODE_EXTRA_CA_CERTS=file környezeti változót a buildügynökhöz, vagy adja hozzá a NODE.EXTRA.CA.CERTS=file feladatváltozót a folyamatban.
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átok néhány ilyen funkciót a helyszínen telepített Azure DevOps Serverben?
Az alábbi funkciók némelyike csak a Azure DevOps Szolgáltatások esetében érhető el, és nem érhető el a helyszíni Azure DevOps Server esetében. Egyes funkciók csak a Azure DevOps Server legújabb verziójában érhetők el.