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. Hay dos proveedores de caché binaria que están disponibles para repositorios de GitHub, el proveedor de caché de Acciones de GitHub y el proveedor de caché nuGet paquetes de GitHub. Para obtener más información sobre estas características de GitHub, consulte Caché de Acciones de GitHub y Paquetes de GitHub. Para obtener más información sobre el almacenamiento en caché binario de vcpkg, consulte nuestra documentación sobre la característica de almacenamiento en caché binario.
Nota
En esta sección se describe una característica experimental de vcpkg que puede cambiar o quitarse en cualquier momento.
La caché de Acciones de GitHub está pensada para almacenar los archivos de compilación intermedios de un repositorio que no cambian a menudo entre trabajos o ejecuciones de flujo de trabajo. Para los usuarios de GitHub, la caché de Acciones de GitHub es una opción natural para el almacenamiento en caché binario de vcpkg y es más fácil configurar que la integración del almacenamiento en caché binario del paquete de GitHub de vcpkg. GitHub proporciona algunas herramientas diferentes para administrar las cachés de acciones, que incluyen las API REST y una extensión a la herramienta de gh
línea de comandos, para que pueda optimizar las memorias caché del flujo de trabajo. La integración de vcpkg con la caché de Acciones de GitHub se realiza a través del x-gha
proveedor de origen binario.
Los paquetes de GitHub permiten que un repositorio publique artefactos binarios para uso público o privado. Más allá del almacenamiento de hospedaje para paquetes publicados, Paquetes de GitHub admite una variedad de herramientas de administración de paquetes al actuar como un registro de paquetes. vcpkg puede usar la interfaz del registro nuGet para paquetes de GitHub como caché para artefactos binarios vcpkg, mediante el proveedor de nuget
origen binario. Esta integración con paquetes de GitHub no es tan sencilla como la integración y administración de la caché de Acciones de GitHub de los archivos binarios almacenados en caché es más difícil, lo que hace que la caché de Acciones de GitHub sea una mejor opción para la mayoría de los usuarios.
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.
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.
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 valordependencygraph
. - Establezca la variable de
GITHUB_TOKEN
entorno en el valor${{ secrets.GITHUB_TOKEN }}
. - Proporcione a Acciones de GitHub acceso de escritura al contenido del repositorio mediante la inclusión del 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.
- 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.
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
Comentarios de vcpkg
vcpkg es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: