Lire en anglais

Partager via


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. Il existe deux fournisseurs de cache binaires disponibles pour les référentiels GitHub, le fournisseur de cache GitHub Actions et le fournisseur de cache NuGet des packages GitHub. Pour plus d’informations sur ces fonctionnalités GitHub, consultez le cache GitHub Actions et les packages GitHub. Pour plus d’informations sur la mise en cache binaire vcpkg, consultez notre documentation sur la fonctionnalité de mise en cache binaire.

Fournisseur de cache GitHub Actions

Notes

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

Le cache GitHub Actions est destiné à stocker les fichiers de build intermédiaires d’un référentiel qui ne changent pas souvent entre les travaux ou les exécutions de flux de travail. Pour les utilisateurs gitHub, le cache GitHub Actions est un élément naturel de la mise en cache binaire de vcpkg, et il est plus facile de configurer que l’intégration de mise en cache binaire du package GitHub de vcpkg. GitHub fournit quelques outils différents pour gérer vos caches Actions, qui incluent des API REST et une extension à l’outil gh en ligne de commande, afin que vous puissiez optimiser les caches pour votre flux de travail. L’intégration de vcpkg au cache GitHub Actions est via le x-gha fournisseur de source binaire.

Fournisseur de cache NuGet packages GitHub

Les packages GitHub permettent à un référentiel 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, GitHub Packages prend en charge un large éventail d’outils de gestion de packages en agissant comme registre de packages. vcpkg peut utiliser l’interface de Registre NuGet pour GitHub Packages comme cache pour les artefacts binaires vcpkg, à l’aide du nuget fournisseur de source binaire. Cette intégration à GitHub Packages n’est pas aussi simple que l’intégration et la gestion du cache GitHub Actions des fichiers binaires mis en cache sont plus difficiles, ce qui rend le cache GitHub Actions plus efficace pour la plupart des utilisateurs.

Le graphe des dépendances GitHub

Notes

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

Conseil

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 permet, faites-nous part de cela et nous allons nous assurer qu’elle est également adaptée aux bonnes personnes sur GitHub.

À propos du graphe des dépendances GitHub

GitHub graphe des dépendances 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 à gitHub graphe des dépendances

vcpkg a une prise en charge expérimentale pour remplir le graphe des 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 graphe des dépendances dans votre référentiel. Cela n’ajoute aucune validation à votre référentiel ni apporte toute autre modification au contenu de votre dépôt.
permissions:
  contents: write

Vous devez activer le graphe des 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 graphe des 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 des graphe des dépendances, telles que les alertes Dependabot et les demandes de tirage 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 workflow GitHub Actions

Notes

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