Auf Englisch lesen

Freigeben über


GitHub-Integrationspunkte

Zwischenspeichern von vcpkg-integrierten Binärdateien für Ihre GitHub-Aktionen-Workflows

Das Feature für die binäre Zwischenspeicherung von vcpkg verringert die Zeit, die zum Erstellen von Projekten benötigt wird, die GitHub-Aktionen für die kontinuierliche Integration verwenden. Es gibt zwei binäre Cacheanbieter, die für GitHub-Repositorys, den GitHub Actions-Cacheanbieter und den GitHub Packages NuGet-Cacheanbieter verfügbar sind. Weitere Informationen zu diesen GitHub-Features finden Sie unter GitHub-Aktionen-Cache und GitHub-Pakete. Weitere Informationen zur binären Zwischenspeicherung von vcpkg finden Sie in unserer Dokumentation zur binären Zwischenspeicherung.

Der Cacheanbieter für GitHub-Aktionen

Hinweis

In diesem Abschnitt wird ein experimentelles Feature von vcpkg behandelt, das jederzeit geändert oder entfernt werden kann.

Der GitHub Actions-Cache soll die Zwischenbuilddateien eines Repositorys speichern, die sich nicht häufig zwischen Aufträgen oder Workflows ändern. Für GitHub-Benutzer ist der GitHub-Aktionen-Cache eine natürliche Lösung für die binäre Zwischenspeicherung von vcpkg, und es ist einfacher zu konfigurieren als die GitHub-Paket-Binärzwischenspeicherungsintegration von vcpkg. GitHub bietet einige verschiedene Tools zum Verwalten Ihrer Aktionen-Caches, darunter REST-APIs und eine Erweiterung des gh Befehlszeilentools, sodass Sie Caches für Ihren Workflow optimieren können. Die Integration von vcpkg in den GitHub Actions-Cache erfolgt über den x-gha Binären Quellanbieter.

Der NuGet-Cacheanbieter für GitHub-Pakete

GitHub-Pakete ermöglichen es einem Repository, binäre Artefakte für die öffentliche oder private Verwendung zu veröffentlichen. Über das Hosten von Speicher für veröffentlichte Pakete hinaus unterstützt GitHub-Pakete eine Vielzahl von Paketverwaltungstools, indem sie als Paketregistrierung fungieren. vcpkg kann die NuGet-Registrierungsschnittstelle für GitHub-Pakete als Cache für vcpkg-binäre Artefakte verwenden, indem sie den nuget Binären Quellanbieter verwenden. Diese Integration in GitHub-Pakete ist nicht so einfach wie die GitHub Actions-Cacheintegration und -verwaltung der zwischengespeicherten Binärdateien ist schwieriger, wodurch die GitHub-Aktionen für die meisten Benutzer eine bessere Option zwischenspeichern.

GitHub-Abhängigkeitsdiagramm

Hinweis

In diesem Abschnitt wird ein experimentelles Feature von vcpkg behandelt, das jederzeit geändert oder entfernt werden kann.

Tipp

Wir entwickeln dieses Feature aktiv und möchten Ihr Feedback hören. Teilen Sie uns mit, ob Sie gedanken über die aktuelle Funktionalität oder die gewünschte Funktionalität haben, indem Sie eine E-Mail senden vcpkg@microsoft.com oder ein Problem in vcpkg ablegen. Wenn Sie Feedback zu den GitHub-Features haben, die dies ermöglicht, teilen Sie uns das ebenfalls mit, und wir stellen sicher, dass es auf GitHub zu den richtigen Leuten kommt.

Informationen zum GitHub-Abhängigkeitsdiagramm

Die GitHub-Abhängigkeitsdiagramm speichert die Gruppe von Abhängigkeiten für ein Repository. Über die Möglichkeit hinaus, die Abhängigkeiten eines Repositorys zu visualisieren, erstellt GitHub mehrere nützliche Features auf diesen Daten, einschließlich Abhängigkeitsüberprüfungen und Dependabot-Warnungen. Weitere Informationen finden Sie in der Dokumentation zu GitHub zum Sichern Ihrer Lieferkette.

vcpkg-Integration mit dem GitHub-Abhängigkeitsdiagramm

vcpkg verfügt über experimentelle Unterstützung für das Auffüllen des GitHub-Abhängigkeitsdiagramm aus einem GitHub-Aktionen-Workflow. Um dieses Feature zu aktivieren, nehmen Sie die folgenden Änderungen in der Workflowdatei vor:

  • Legen Sie die Umgebungsvariable VCPKG_FEATURE_FLAGS fest, um den Wert dependencygrapheinzuschließen.
  • Legen Sie die GITHUB_TOKEN Umgebungsvariable auf den Wert ${{ secrets.GITHUB_TOKEN }}fest.
  • Gewähren Sie GitHub-Aktionen Schreibzugriff auf die Inhalte Ihres Repositorys, indem Sie den folgenden Berechtigungsblock einschließen. Dies ist erforderlich, um die Abhängigkeitsdiagramm Metadaten in Ihr Repository zu schreiben. Dadurch werden ihrem Repository keine Commits hinzugefügt oder andere Änderungen an den Inhalten Ihres Repositorys vorgenommen.
permissions:
  contents: write

Sie müssen die GitHub-Abhängigkeitsdiagramm in den Einstellungen Ihres Repositorys aktivieren (standardmäßig in öffentlichen Repositorys aktiviert). Folgen Sie für private Repositorys der GitHub-Dokumentation, um die Abhängigkeitsdiagramm zu aktivieren, um diese Anforderung zu erfüllen.

Bekannte Einschränkungen

  • Die version von vcpkg gebündelt mit GitHub Actions runners ist möglicherweise nicht auf dem neuesten Stand. Verwenden Sie die neueste Version von vcpkg, um Zugriff auf dieses Feature zu erhalten und die neuesten Fehlerbehebungen zu erhalten.
  • Features, die von den Abhängigkeitsdiagramm abhängen, z. B. Dependabot-Warnungen und Dependabot-Pullanforderungen, sind noch nicht verfügbar. Bitte teilen Sie uns mit, ob Sie an diesen Features interessiert sind!

GitHub Actions-Beispielworkflow

Hinweis

In diesem Beispiel wird davon ausgegangen, dass ein gültiges vcpkg.json Manifest vorhanden ist, das einige abhängige Ports auflistet. Weitere Informationen zu Manifesten finden Sie in unserer Dokumentation zum Manifestmodus.

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