Integrační body GitHubu
Funkce binárního ukládání do mezipaměti vcpkg zkracuje dobu potřebnou k vytváření projektů, které používají GitHub Actions pro kontinuální integraci. Existují dva poskytovatelé binární mezipaměti, kteří jsou k dispozici pro úložiště GitHub, poskytovatele mezipaměti GitHub Actions a poskytovatele mezipaměti NuGet Služby GitHub Packages. Další informace o těchto funkcích GitHubu najdete v mezipaměti GitHub Actions a v GitHub Packages. Další informace o binární ukládání do mezipaměti vcpkg najdete v dokumentaci k funkci binární mezipaměti.
Poznámka
Tato část popisuje experimentální funkci vcpkg, která se může kdykoli změnit nebo odebrat.
Mezipaměť GitHub Actions je určená k ukládání dočasných souborů sestavení úložiště, které se mezi úlohami nebo spuštěními pracovního postupu často nemění. Pro uživatele GitHubu je mezipaměť GitHub Actions přirozeně vhodná pro binární ukládání do mezipaměti vcpkg a je jednodušší nakonfigurovat než integraci binární mezipaměti GitHub Package vcpkg. GitHub nabízí několik různých nástrojů pro správu mezipamětí Akcí, mezi které patří rozhraní REST API a rozšíření nástroje příkazového gh
řádku, abyste mohli optimalizovat mezipaměti pro váš pracovní postup. Integrace vcpkg s mezipamětí GitHub Actions je prostřednictvím zprostředkovatele binárního x-gha
zdroje.
GitHub Packages umožňuje úložišti publikovat binární artefakty pro veřejné nebo soukromé použití. Kromě hostování úložiště pro publikované balíčky podporuje GitHub Packages celou řadu nástrojů pro správu balíčků tím, že funguje jako registr balíčků. Vcpkg může použít rozhraní registru NuGet ke službě GitHub Packages jako mezipaměť binárních artefaktů vcpkg pomocí zprostředkovatele binárního nuget
zdroje. Tato integrace se službami GitHub Packages není tak jednoduchá, protože integrace a správa binárních souborů v mezipaměti GitHub Actions je obtížnější. Díky tomu je mezipaměť GitHub Actions lepší možností pro většinu uživatelů.
Poznámka
Tato část popisuje experimentální funkci vcpkg, která se může kdykoli změnit nebo odebrat.
Tip
Tuto funkci aktivně vyvíjíme a rádi bychom slyšeli vaši zpětnou vazbu. Dejte nám vědět, pokud máte nějaké nápady na aktuální funkce nebo požadované funkce e-mailem vcpkg@microsoft.com nebo vyplněním problému vcpkg. Pokud máte zpětnou vazbu na některou z funkcí GitHubu, které to umožňuje, dejte nám vědět také a my se ujistíme, že se dostanete k správným lidem na GitHubu.
Graf závislostí GitHubu ukládá sadu závislostí pro úložiště. Kromě toho, že gitHub dokáže vizualizovat závislosti úložiště, sestaví na základě těchto dat několik užitečných funkcí, včetně kontroly závislostí a upozornění Dependabot. Další informace najdete v dokumentaci GitHubu k zabezpečení dodavatelského řetězce.
Vcpkg má experimentální podporu pro naplnění grafu závislostí GitHubu z pracovního postupu GitHub Actions. Pokud chcete tuto funkci povolit, proveďte v souboru pracovního postupu následující změny:
- Nastavte proměnnou
VCPKG_FEATURE_FLAGS
prostředí tak, aby zahrnovala hodnotudependencygraph
. - Nastavte proměnnou
GITHUB_TOKEN
prostředí na hodnotu${{ secrets.GITHUB_TOKEN }}
. - Poskytněte GitHub Actions přístup k obsahu úložiště zahrnutím následujícího bloku oprávnění. To je nutné k zápisu metadat grafu závislostí do úložiště. Tím se do úložiště nepřidají žádná potvrzení ani neprovedou žádné další změny obsahu úložiště.
permissions:
contents: write
Graf závislostí GitHubu musíte povolit v nastavení vašeho úložiště (ve výchozím nastavení je to povolené ve veřejných úložištích). V případě privátních úložišť postupujte podle dokumentace GitHubu a povolte graf závislostí, aby tento požadavek splňoval.
- Verze vcpkg, která je součástí spouštěčů GitHub Actions, nemusí být aktuální. Pomocí nejnovější verze vcpkg získejte přístup k této funkci a získejte nejnovější opravy chyb.
- Funkce, které závisí na grafu závislostí, jako jsou upozornění Dependabot a žádosti o přijetí změn Dependabot, ještě nejsou k dispozici. Pokud vás zajímají tyto funkce, dejte nám prosím vědět.
Poznámka
Tento příklad předpokládá, že existuje platný vcpkg.json
manifest, který uvádí některé závislé porty. Další informace o manifestech najdete v naší dokumentaci k režimu 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
Zpětná vazba k produktu vcpkg
vcpkg je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: