Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Polecenia git są dostępne dla przepływów pracy kompilacji w agentach hostowanych przez firmę Microsoft i własnych . Na przykład po zakończeniu kompilacji ciągłej integracji w gałęzi funkcji można scalić gałąź z gałęzią główną. W tym artykule wyjaśniono, jak uruchamiać polecenia Git w skryptach kompilacji usługi Azure Pipelines.
Włączanie skryptów do uruchamiania poleceń usługi Git
Upewnij się, że usługa GitHub używa domyślnej tożsamości konta usługi Azure DevOps. W razie potrzeby ustaw użytkownika usługi GitHub jako pierwszy krok po wyewidencjonowania.
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
Udzielanie uprawnień usłudze kompilacji
Usługa kompilacji projektu musi mieć uprawnienia do zapisu w repozytorium źródłowym. Ustaw wymagane uprawnienia w następujący sposób:
W obszarze Ustawienia projektu dla projektu wybierz pozycję Repozytoria w obszarze Repozytoria.
Na stronie Wszystkie repozytoria wybierz pozycję Zabezpieczenia , aby ustawić uprawnienia dla wszystkich repozytoriów w projekcie. Możesz też wybrać repozytorium, w którym chcesz uruchomić polecenia Git, a następnie wybierz pozycję Zabezpieczenia na stronie tego repozytorium.
Na stronie Uprawnienia użytkownika wybierz tożsamość usługi kompilacji . Pamiętaj, aby wybrać <nazwę> projektu Build Service (<organizacja>) w obszarze Użytkownicy, a nie konta usługi kompilacji kolekcji projektów. Domyślnie ta tożsamość może odczytywać z repozytorium, ale nie może wypchnąć do niego żadnych zmian.
Z listy rozwijanej wybierz pozycję Zezwalaj obok każdego uprawnienia wymaganego dla poleceń usługi Git, które chcesz uruchomić, zazwyczaj utwórz gałąź, współtworzenie, odczyt i utwórz tag.
Zezwalaj skryptom na dostęp do tokenu systemowego
Aby zezwolić skryptom na dostęp do tokenu OAuth usługi GitHub:
checkout Dodaj krok do potoku YAML z ustawioną wartością persistCredentialstrue.
steps:
- checkout: self
persistCredentials: true
Aby uzyskać więcej informacji na temat checkout kroku, zobacz definicję steps.checkout .
Czyszczenie repozytorium lokalnego
Potok kompilacji nie czyści automatycznie niektórych zmian w repozytorium lokalnym, takich jak usuwanie gałęzi lokalnych lub cofanie zmian lokalnych git config . Jeśli wystąpią problemy z użyciem własnego agenta, możesz wyczyścić repozytorium przed uruchomieniem kompilacji.
Ogólnie rzecz biorąc, aby zapewnić szybszą wydajność własnych agentów, nie usuwaj repozytorium. Czyszczenie nie jest skuteczne w przypadku agentów hostowanych przez firmę Microsoft, ponieważ za każdym razem używają nowego agenta. Aby uzyskać więcej informacji, zobacz Czyszczenie lokalnego repozytorium na agencie.
Aby wyczyścić repozytorium przed uruchomieniem kompilacji:
Ustaw clean wartość na true w checkout kroku. Ta opcja jest uruchamiana git clean -ffdxgit reset --hard HEAD przed pobraniem.
steps:
- checkout: self
clean: true
Wybierz pozycję Zmienne w edytorze potoku, utwórz lub zmodyfikuj zmienną Build.Clean i ustaw jej wartość na source.
Przykłady poleceń usługi Git
Poniższe przykłady uruchamiają polecenia Git w zadaniu wiersza polecenia i zadaniu skryptu usługi Batch .
Wyświetl listę plików w swoim repozytorium
Aby wyświetlić listę plików w repozytorium Git, użyj zadania wiersza polecenia w potoku YAML w następujący sposób:
- task: CmdLine@2
inputs:
script: 'git ls-files'
Scalanie gałęzi funkcjonalności z gałęzią główną
Poniższy przykład klasycznego potoku scala kompilację ciągłej integracji, jeśli main kompilacja zakończy się pomyślnie.
Utwórz plik o nazwie merge.bat w katalogu głównym repozytorium z następującą zawartością:
@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 statusNa karcie Wyzwalacze w potoku klasycznym zaznacz pole wyboru Włącz ciągłą integrację.
W obszarze Filtry gałęzi i Filtry ścieżki wybierz gałęzie i ścieżki, aby uwzględnić lub wykluczyć z kompilacji.
Dodaj skrypt usługi Batch jako ostatnie zadanie w potoku.
W obszarze Ścieżka w konfiguracji zadania wprowadź lokalizację i nazwę pliku merge.bat .
Często zadawane pytania
Czy mogę uruchomić polecenia Git, jeśli repozytorium zdalne znajduje się w usłudze GitHub lub innej usłudze Git, takiej jak Bitbucket Cloud?
Tak, możesz uruchomić polecenia Git, jeśli repozytorium zdalne znajduje się w usłudze GitHub lub innej usłudze Git, takiej jak Bitbucket Cloud.
Których zadań można używać do uruchamiania poleceń usługi Git?
Do uruchamiania poleceń usługi Git można użyć następujących zadań usługi Azure Pipelines:
- Bash
- Skrypt wsadowy
- wiersz poleceń
- PowerShell
- skryptu powłoki
Jak uniknąć wyzwalania kompilacji ciągłej integracji podczas wypychania skryptu?
Aby uniknąć wyzwalania kompilacji ciągłej integracji podczas wypychania skryptu, dodaj [skip ci] go do komunikatu lub opisu zatwierdzenia. Przykład:
git commit -m "This is a commit message [skip ci]"git merge origin/features/hello-world -m "Merge to main [skip ci]"
Możesz również użyć dowolnej z następujących odmian dla zatwierdzeń w usłudze Azure Repos Git, Bitbucket Cloud, GitHub lub GitHub Enterprise Server:
-
[skip ci]lub[ci skip] -
skip-checks: truelubskip-checks:true -
[skip azurepipelines]lub[azurepipelines skip] -
[skip azpipelines]lub[azpipelines skip] -
[skip azp]lub[azp skip] ***NO_CI***
Czy potrzebuję agenta do uruchamiania potoków?
Tak, do uruchomienia potoku kompilacji lub wydania potrzebny jest co najmniej jeden agent .
Jak mogę rozwiązywać problemy?
Zobacz Rozwiązywanie problemów z przebiegami potoków.
Jak rozwiązać problem z brakiem możliwości wybrania domyślnej puli agentów lub kolejki przebiegu potoku?
Zobacz Tworzenie pul agentów i zarządzanie nimi.
Jak mogę naprawić niepowodzenie zadania wypychania NuGet z komunikatem "Błąd: nie można pobrać certyfikatu wystawcy lokalnego"?
Ten problem można rozwiązać, dodając zaufany certyfikat główny. Dodaj zmienną NODE_EXTRA_CA_CERTS=file środowiskową do agenta kompilacji lub dodaj zmienną NODE.EXTRA.CA.CERTS=file zadania w potoku.
Aby uzyskać więcej informacji na temat tej zmiennej, zobacz NODE_EXTRA_CA_CERTS=file w dokumentacji Node.js. Aby uzyskać instrukcje dotyczące ustawiania zmiennej w potoku, zobacz Ustawianie zmiennych w potoku.
Dlaczego nie widzę niektórych z tych funkcji w lokalnym serwerze Azure DevOps Server?
Niektóre z tych funkcji są dostępne tylko w usługach Azure DevOps Services i nie są dostępne dla lokalnego serwera Azure DevOps Server. Niektóre funkcje są dostępne tylko w najnowszej wersji usługi Azure DevOps Server.