Spouštění příkazů Git ve skriptu
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Abyste mohli spouštět příkazy Git, u některých pracovních postupů potřebujete kanál buildu. Například po dokončení buildu CI na větvi funkcí může tým chtít sloučit větev do hlavní.
Git je k dispozici pro agenty hostované Microsoftem a místní agenty.
Povolení skriptů ke spouštění příkazů Gitu
Poznámka:
Než začnete, ujistěte se, že je výchozí identita vašeho účtu nastavená následujícím kódem. Tento krok musí být proveden jako první krok po rezervaci kódu.
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
Udělení oprávnění ke správě verzí službě sestavení
Přejděte na stránku nastavení projektu pro vaši organizaci v organizaci Nastavení> General>Projects.
Vyberte projekt, který chcete upravit.
V aplikaci Project Nastavení vyberte Úložiště. Vyberte úložiště, na které chcete spouštět příkazy Gitu.
Vyberte Zabezpečení a upravte zabezpečení úložiště.
Vyhledejte službu sestavení kolekce projektů. Zvolte identitu {{název vašeho projektu}} Build Service ({vaše organizace}) (nikoli skupinový účet služby sestavení kolekce projektů ({vaše organizace})). Ve výchozím nastavení může tato identita číst z úložiště, ale nemůže do něj odesílat žádné změny. Udělte oprávnění potřebná pro příkazy Gitu, které chcete spustit. Obvykle budete chtít udělit:
- Vytvoření větve: Povolit
- Přispívání: Povolit
- Čtení: Povolit
- Vytvořit značku: Povolit
Přechod na kartu Ovládací panely správy verzí
Azure Repos:
https://dev.azure.com/{your-organization}/{your-project}/_admin/_versioncontrol
Místní:
https://{your-server}:8080/tfs/DefaultCollection/{your-project}/_admin/_versioncontrol
Pokud se zobrazí tato stránka, vyberte úložiště a pak vyberte odkaz:
Na kartě Správa verzí vyberte úložiště, ve kterém chcete spouštět příkazy Gitu, a pak vyberte Službu sestavení kolekce projektů. Ve výchozím nastavení může tato identita číst z úložiště, ale nemůže do něj odesílat žádné změny.
Udělte oprávnění potřebná pro příkazy Gitu, které chcete spustit. Obvykle budete chtít udělit:
- Vytvoření větve: Povolit
- Přispívání: Povolit
- Čtení: Povolit
- Vytvořit značku: Povolit
Až oprávnění udělíte, nezapomeňte vybrat Uložit změny.
Povolit skriptům přístup k systémovému tokenu
Na kartě Možnosti vyberte Povolit skriptům přístup k tokenu OAuth.
Nezapomeňte vyčistit místní úložiště.
Kanál buildu automaticky nevyčistí určité druhy změn místního úložiště. Proto se ujistěte, že:
- Odstraňte místní větve, které vytvoříte.
- Vrácení změn konfigurace Gitu zpět
Pokud při používání místního agenta narazíte na problémy, ujistěte se, že je úložiště čisté:
Příklady
Výpis souborů v úložišti
Na kartě sestavení přidejte tuto úlohu:
Úloha | Argumenty |
---|---|
![]() Nástroj: Příkazový řádek Vypište soubory v úložišti Git. |
Nástroj: git Argumenty: ls-files |
Sloučení větve funkcí do hlavní větve
Chcete, aby se sestavení CI sloučilo tak, aby bylo hlavní, pokud sestavení proběhne úspěšně.
Na kartě Triggery vyberte Kontinuální integrace (CI) a zahrňte větve, které chcete sestavit.
Vytvořte merge.bat
v kořenovém adresáři úložiště:
@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
Na kartě sestavení přidejte tento úkol jako poslední úkol:
Úloha | Argumenty |
---|---|
![]() Nástroj: Dávkový skript Spusťte merge.bat. |
Cesta: merge.bat |
Často kladené dotazy
Můžu spouštět příkazy Gitu, pokud je vzdálené úložiště v GitHubu nebo jiné službě Git, jako je Bitbucket Cloud?
Ano
Které úlohy můžu použít ke spouštění příkazů Gitu?
Návody vyhnout se aktivaci sestavení CI při nasdílení skriptu?
Přidejte ***NO_CI***
do zprávy potvrzení. Tady jsou příklady:
git commit -m "This is a commit message ***NO_CI***"
git merge origin/features/hello-world -m "Merge to main ***NO_CI***"
Přidejte [skip ci]
zprávu nebo popis potvrzení. Tady jsou příklady:
git commit -m "This is a commit message [skip ci]"
git merge origin/features/hello-world -m "Merge to main [skip ci]"
Jakékoli z těchto variant můžete použít také k potvrzení do Gitu Azure Repos, Bitbucket Cloudu, GitHubu a GitHubu Enterprise Serveru.
[skip ci]
nebo[ci skip]
skip-checks: true
neboskip-checks:true
[skip azurepipelines]
nebo[azurepipelines skip]
[skip azpipelines]
nebo[azpipelines skip]
[skip azp]
nebo[azp skip]
***NO_CI***
Potřebuji agenta?
Ke spuštění sestavení nebo vydání potřebujete aspoň jednoho agenta .
Mám problémy. Jak je můžu vyřešit?
Viz Řešení potíží s sestavením a vydáním.
Nemůžu vybrat výchozí fond agentů a nemůžu zařadit sestavení nebo vydání do fronty. Jak to můžu vyřešit?
Viz fondy agentů.
Moje úloha nabízení NuGet selhává s následující chybou: Chyba: Nejde získat certifikát místního vystavitele. Jak to můžu opravit?
Tento problém je možné vyřešit přidáním důvěryhodného kořenového certifikátu. Buď můžete přidat proměnnou prostředí NODE_EXTRA_CA_CERTS=file
do agenta sestavení, nebo proměnnou úlohy NODE.EXTRA.CA.CERTS=file
do kanálu. Další podrobnosti o této proměnné najdete v dokumentaci k Node.js. Pokyny k nastavení proměnné v kanálu najdete v části Nastavení proměnných v kanálu.
Používám místně TFS a některé z těchto funkcí nevidím. Proč ne?
Některé z těchto funkcí jsou dostupné jenom v Azure Pipelines a zatím nejsou dostupné místně. Některé funkce jsou dostupné místně, pokud jste upgradovali na nejnovější verzi TFS.