Points d’intégration GitHub

Mise en cache des fichiers binaires basés sur vcpkg pour vos flux de travail GitHub Actions

La fonctionnalité de mise en cache binaire de vcpkg réduit le temps nécessaire pour générer des projets qui utilisent GitHub Actions pour l’intégration continue. Pour plus d’informations, consultez la documentation des fonctionnalités de mise en cache binaire.

Le fournisseur de cache NuGet de paquets GitHub

Les packages GitHub permettent aux référentiels de publier des artefacts binaires pour une utilisation publique ou privée. Au-delà de l’hébergement du stockage pour les packages publiés, la prise en charge des packages GitHub offre une interface de Registre NuGet que vcpkg peut utiliser comme cache binaire, avec le nuget fournisseur de source binaire.

Graphique des dépendances GitHub

Remarque

Cette section décrit une fonctionnalité expérimentale de vcpkg qui peut changer ou être supprimée à tout moment.

Conseil / Astuce

Nous développons activement cette fonctionnalité et aimerions entendre vos commentaires. Informez-nous si vous avez des idées sur les fonctionnalités actuelles ou les fonctionnalités souhaitées en envoyant un e-mail ou en plaçant vcpkg@microsoft.com un problème dans vcpkg. Si vous avez des commentaires sur l’une des fonctionnalités GitHub que cela active, faites-le nous savoir aussi et nous nous assurerons qu'elle parvient aux bonnes personnes chez GitHub.

À propos du graphique des dépendances GitHub

Le graphique des dépendances GitHub stocke l’ensemble de dépendances pour un référentiel. Au-delà de pouvoir visualiser les dépendances d’un référentiel, GitHub génère plusieurs fonctionnalités utiles sur ces données, notamment la révision des dépendances et les alertes Dependabot. Pour en savoir plus, consultez la documentation de GitHub sur la sécurisation de votre chaîne logistique.

Intégration de vcpkg au graphe des dépendances GitHub

vcpkg a une prise en charge expérimentale pour remplir le graphique de dépendances GitHub à partir d’un flux de travail GitHub Actions. Pour activer cette fonctionnalité, apportez les modifications suivantes dans votre fichier de flux de travail :

  • Définissez la variable d’environnement VCPKG_FEATURE_FLAGS pour inclure la valeur dependencygraph.
  • Définissez la variable d’environnement GITHUB_TOKEN sur la valeur ${{ secrets.GITHUB_TOKEN }}.
  • Donnez à GitHub Actions un accès en écriture au contenu de votre référentiel en incluant le bloc d’autorisations suivant. Cela est nécessaire pour écrire les métadonnées du graphique de dépendances dans votre référentiel. Cela n’ajoutera aucune validation à votre dépôt ni ne fera toute autre modification au contenu de votre dépôt.
permissions:
  contents: write

Vous devez activer le graphique de dépendances GitHub dans les paramètres de votre référentiel (activé par défaut sur les référentiels publics). Pour les référentiels privés, suivez la documentation GitHub pour activer le graphique de dépendances afin de répondre à cette exigence.

Limitations connues

  • La version de vcpkg groupée avec les exécuteurs GitHub Actions peut ne pas être à jour. Utilisez la version la plus récente de vcpkg pour accéder à cette fonctionnalité et recevoir les derniers correctifs de bogues.
  • Les fonctionnalités qui dépendent du graphe de dépendances, telles que les alertes Dependabot et les demandes d’extraction de Dependabot, ne sont pas encore disponibles. S’il vous plaît nous faire savoir si vous êtes intéressé par ces fonctionnalités !

Exemple de flux de travail GitHub Actions

Remarque

Cet exemple suppose qu’il existe un manifeste valide vcpkg.json qui répertorie certains ports dépendants. Pour plus d’informations sur les manifestes, consultez notre documentation sur le mode manifeste.

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