Integrační body GitHubu

Ukládání binárních souborů postavených nástrojem vcpkg do mezipaměti 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. Další informace najdete v dokumentaci k funkci binární mezipaměti.

Poskytovatel mezipaměti NuGetu GitHub Packages

Služba GitHub Packages umožňuje úložištím publikovat binární artefakty pro veřejné nebo soukromé použití. Kromě hostování úložiště pro publikované balíčky nabízí podpora GitHub Packages rozhraní registru NuGet, které může vcpkg používat jako binární mezipaměť s poskytovatelem binárníhonuget zdroje.

Graf závislostí GitHubu

Poznámka:

Tato část popisuje experimentální funkci vcpkg, která se může kdykoli změnit nebo odebrat.

Návod

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ímto se do úložiště nepřidají žádné commity ani jinak nezmění obsah ú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 pull requesty 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