Punkty integracji usługi GitHub
Buforowanie plików binarnych utworzonych przez program vcpkg dla przepływów pracy funkcji GitHub Actions
Funkcja buforowania binarnego programu vcpkg skraca czas potrzebny do kompilowania projektów korzystających z funkcji GitHub Actions na potrzeby ciągłej integracji. Istnieją dwa dostawcy binarnej pamięci podręcznej, którzy są dostępni dla repozytoriów GitHub, dostawcy pamięci podręcznej funkcji GitHub Actions i dostawcy pamięci podręcznej NuGet pakietów GitHub. Aby uzyskać więcej informacji na temat tych funkcji usługi GitHub, zobacz Pamięć podręczna funkcji GitHub Actions i pakiety GitHub. Aby uzyskać więcej informacji na temat buforowania binarnego vcpkg, zobacz dokumentację funkcji buforowania binarnego.
Uwaga
W tej sekcji opisano eksperymentalną funkcję vcpkg, która może ulec zmianie lub zostać usunięta w dowolnym momencie.
Pamięć podręczna funkcji GitHub Actions jest przeznaczona do przechowywania pośrednich plików kompilacji repozytorium, które nie zmieniają się często między zadaniami lub przebiegami przepływu pracy. W przypadku użytkowników usługi GitHub pamięć podręczna funkcji GitHub Actions jest naturalną funkcją buforowania binarnego vcpkg i łatwiej jest skonfigurować niż integracja buforowania binarnego pakietu GitHub programu vcpkg. Usługa GitHub udostępnia kilka różnych narzędzi do zarządzania pamięciami podręcznymi akcji, które obejmują interfejsy API REST i rozszerzenie gh
do narzędzia wiersza polecenia, dzięki czemu można zoptymalizować pamięci podręczne dla przepływu pracy. Integracja programu vcpkg z pamięcią podręczną funkcji GitHub Actions odbywa się za pośrednictwem x-gha
dostawcy źródła binarnego.
Pakiety GitHub umożliwiają repozytorium publikowanie artefaktów binarnych na potrzeby użytku publicznego lub prywatnego. Poza hostem magazynu dla opublikowanych pakietów pakiety GitHub obsługują różne narzędzia do zarządzania pakietami, działając jako rejestr pakietów. Narzędzie vcpkg może używać interfejsu rejestru NuGet do pakietów GitHub jako pamięci podręcznej dla artefaktów binarnych vcpkg przy użyciu nuget
dostawcy źródła binarnego. Integracja z pakietami GitHub nie jest tak prosta, jak integracja pamięci podręcznej funkcji GitHub Actions i zarządzanie buforowanymi plikami binarnymi jest trudniejsze, dzięki czemu pamięć podręczna Funkcji GitHub Actions jest lepszym rozwiązaniem dla większości użytkowników.
Uwaga
W tej sekcji opisano eksperymentalną funkcję vcpkg, która może ulec zmianie lub zostać usunięta w dowolnym momencie.
Porada
Aktywnie opracowujemy tę funkcję i chcemy usłyszeć Twoją opinię. Poinformuj nas, czy masz jakiekolwiek przemyślenia dotyczące bieżącej funkcjonalności lub dowolnej żądanej funkcjonalności, wysyłając vcpkg@microsoft.com wiadomość e-mail lub zgłaszając problem w narzędziu vcpkg. Jeśli masz opinię na temat dowolnych funkcji usługi GitHub, które to umożliwiają, poinformuj nas o tym również i upewnimy się, że trafi ona do odpowiednich osób w usłudze GitHub.
Graf zależności usługi GitHub przechowuje zestaw zależności dla repozytorium. Oprócz możliwości wizualizacji zależności repozytorium usługa GitHub tworzy kilka przydatnych funkcji na podstawie tych danych, w tym przegląd zależności i alerty Dependabot. Dowiedz się więcej w dokumentacji usługi GitHub dotyczącej zabezpieczania łańcucha dostaw.
Narzędzie vcpkg ma eksperymentalną obsługę wypełniania grafu zależności usługi GitHub z poziomu przepływu pracy funkcji GitHub Actions. Aby włączyć tę funkcję, wprowadź następujące zmiany w pliku przepływu pracy:
- Ustaw zmienną środowiskową tak
VCPKG_FEATURE_FLAGS
, aby zawierała wartośćdependencygraph
. - Ustaw zmienną
GITHUB_TOKEN
środowiskową na wartość${{ secrets.GITHUB_TOKEN }}
. - Nadaj usłudze GitHub Actions dostęp do zapisu zawartości repozytorium, dołączając następujący blok uprawnień. Jest to wymagane do zapisania metadanych grafu zależności w repozytorium. Nie spowoduje to dodania żadnych zatwierdzeń do repozytorium ani dokonania żadnych innych modyfikacji zawartości repozytorium.
permissions:
contents: write
Musisz włączyć graf zależności usługi GitHub w ustawieniach repozytorium (domyślnie włączony w repozytoriach publicznych). W przypadku repozytoriów prywatnych postępuj zgodnie z dokumentacją usługi GitHub, aby włączyć graf zależności w celu spełnienia tego wymagania.
- Wersja pakietu vcpkg z modułami uruchamiającym funkcję GitHub Actions może nie być aktualna. Użyj najnowszej wersji programu vcpkg, aby uzyskać dostęp do tej funkcji i otrzymać najnowsze poprawki błędów.
- Funkcje zależne od grafu zależności, takie jak alerty dependabot i żądania ściągnięcia Dependabot, nie są jeszcze dostępne. Daj nam znać, jeśli interesuje Cię te funkcje!
Uwaga
W tym przykładzie przyjęto założenie, że istnieje prawidłowy vcpkg.json
manifest, który zawiera listę niektórych portów zależnych. Aby uzyskać więcej informacji na temat manifestów, zobacz naszą dokumentację dotyczącą trybu manifestu.
name: Populate dependencies
on:
push:
branches: [ main ]
workflow_dispatch:
permissions:
contents: write
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VCPKG_FEATURE_FLAGS: dependencygraph
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
# This will execute a dry-run, meaning that libraries will not be built and
# installed, but they will still be reported to the GitHub dependency graph.
# This step assumes `vcpkg` has been bootstrapped (run `./vcpkg/bootstrap-vcpkg`)
- name: Run vcpkg
run: ${{ github.workspace }}/vcpkg/vcpkg install --dry-run
Opinia o produkcie vcpkg
vcpkg to projekt typu open source. Wybierz link, aby przekazać opinię: