Compartir a través de


Puntos de integración de GitHub

Almacenamiento en caché de archivos binarios compilados en vcpkg para los flujos de trabajo de Acciones de GitHub

La característica de almacenamiento en caché binaria de vcpkg reduce el tiempo necesario para compilar proyectos que usan Acciones de GitHub para la integración continua. Para obtener más información, lea la documentación de la característica de almacenamiento en caché binario.

Proveedor de caché nuGet de paquetes de GitHub

Los paquetes de GitHub permiten a los repositorios publicar artefactos binarios para uso público o privado. Más allá del almacenamiento de hospedaje para paquetes publicados, los paquetes de GitHub ofrecen soporte con una interfaz de registro NuGet que vcpkg puede usar como almacén de caché binario, con el proporcionador de origen binario nuget.

Gráfico de dependencias de GitHub

Nota:

En esta sección se describe una característica experimental de vcpkg que puede cambiar o quitarse en cualquier momento.

Sugerencia

Estamos desarrollando activamente esta característica y nos gustaría escuchar sus comentarios. Háganos saber si tiene alguna idea sobre la funcionalidad actual o cualquier funcionalidad deseada mediante correo electrónico vcpkg@microsoft.com o mediante la presentación de un problema en vcpkg. Si tiene comentarios sobre cualquiera de las características de GitHub que esto permite, háganoslo saber también y nos aseguraremos de que llega a las personas adecuadas en GitHub.

Acerca del gráfico de dependencias de GitHub

El gráfico de dependencias de GitHub almacena el conjunto de dependencias de un repositorio. Más allá de poder visualizar las dependencias de un repositorio, GitHub compila varias características útiles sobre estos datos, incluidas las alertas de revisión de dependencias y Dependabot. Obtenga más información en la documentación de GitHub sobre cómo proteger la cadena de suministro.

Integración de vcpkg con el gráfico de dependencias de GitHub

vcpkg tiene compatibilidad experimental para rellenar el gráfico de dependencias de GitHub desde un flujo de trabajo de Acciones de GitHub. Para habilitar esta característica, realice los siguientes cambios en el archivo de flujo de trabajo:

  • Establezca la variable de VCPKG_FEATURE_FLAGS entorno para incluir el valor dependencygraph.
  • Establezca la variable de GITHUB_TOKEN entorno en el valor ${{ secrets.GITHUB_TOKEN }}.
  • Proporcione a GitHub Actions acceso de escritura al contenido de su repositorio, incluyendo el siguiente bloque de permisos. Esto es necesario para escribir los metadatos del grafo de dependencia en el repositorio. Esto no agregará ninguna confirmación al repositorio ni realizará ninguna otra modificación en el contenido del repositorio.
permissions:
  contents: write

Debe habilitar el gráfico de dependencias de GitHub en la configuración del repositorio (habilitado de forma predeterminada en repositorios públicos). Para los repositorios privados, siga la documentación de GitHub para habilitar el gráfico de dependencias para satisfacer este requisito.

Limitaciones conocidas

  • Es posible que la versión de vcpkg empaquetada con ejecutores de Acciones de GitHub no esté actualizada. Use la versión más reciente de vcpkg para obtener acceso a esta característica y recibir las correcciones de errores más recientes.
  • Las características que dependen del gráfico de dependencias, como las alertas de Dependabot y las solicitudes de incorporación de cambios de Dependabot, aún no están disponibles. Por favor, háganos saber si está interesado en esas características.

Ejemplo de flujo de trabajo de Acciones de GitHub

Nota:

En este ejemplo se supone que hay un manifiesto válido vcpkg.json que enumera algunos puertos dependientes. Para obtener más información sobre los manifiestos, consulte nuestra documentación sobre el modo de manifiesto.

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