Číst v angličtině

Sdílet prostřednictvím


Integrační body GitHubu

Ukládání do mezipaměti binárních souborů vytvořených vcpkg pro pracovní postupy GitHub Actions

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.

Poskytovatel mezipaměti GitHub Actions

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.

Poskytovatel mezipaměti NuGet Služby GitHub Packages

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ů.

Graf závislostí GitHubu

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.

Informace o grafu závislostí 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.

Integrace vcpkg s grafem závislostí GitHubu

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 hodnotu dependencygraph.
  • 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.

Známá omezení

  • 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.

Ukázkový pracovní postup GitHub Actions

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