Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Кэширование двоичных файлов, созданных с помощью vcpkg, для рабочих процессов GitHub Actions
Функция двоичного кэширования vcpkg сокращает время сборки проектов, использующих GitHub Actions для непрерывной интеграции. Дополнительные сведения см. в документации по функциям двоичного кэширования.
Поставщик кэша NuGet пакетов GitHub
Пакеты GitHub позволяют репозиториям публиковать двоичные артефакты для общедоступного или частного использования. Помимо хранения опубликованных пакетов, поддержка пакетов GitHub предоставляет интерфейс NuGet-реестра, который vcpkg может использовать как кэш для двоичных файлов с поставщиком двоичных источников.
Граф зависимостей GitHub
Замечание
В этом разделе рассматривается экспериментальная функция vcpkg, которая может изменяться или удаляться в любое время.
Подсказка
Мы активно развиваем эту функцию и хотели бы услышать ваши отзывы. Сообщите нам, есть ли у вас какие-либо мысли о текущей функциональности или любой требуемой функциональности по электронной почте vcpkg@microsoft.com или путем отправки проблемы в vcpkg. Если у вас есть отзывы по поводу любых функций GitHub, которые стали доступны благодаря этому, сообщите нам, и мы удостоверимся, что они попадут к подходящим специалистам в GitHub.
Сведения о графе зависимостей GitHub
Граф зависимостей GitHub хранит набор зависимостей для репозитория. Помимо возможности визуализации зависимостей репозитория, GitHub создает несколько полезных функций на основе этих данных, включая проверку зависимостей и оповещения Dependabot. Дополнительные сведения см. в документации GitHub по защите цепочки поставок.
Интеграция vcpkg с графом зависимостей GitHub
vcpkg поддерживает экспериментальную поддержку заполнения графа зависимостей GitHub из рабочего процесса GitHub Actions. Чтобы включить эту функцию, внесите следующие изменения в файл рабочего процесса:
-
VCPKG_FEATURE_FLAGSЗадайте переменную среды, чтобы включить значениеdependencygraph. - Задайте для переменной
GITHUB_TOKENсреды значение${{ secrets.GITHUB_TOKEN }}. - Предоставьте GitHub Actions доступ на запись к содержимому репозитория, включив следующий блок разрешений. Это необходимо для записи метаданных графа зависимостей в репозиторий. Это не будет добавлять коммиты в репозиторий или вносить какие-либо другие изменения в его содержимое.
permissions:
contents: write
Необходимо включить граф зависимостей GitHub в параметрах репозитория (включен по умолчанию для общедоступных репозиториев). Для частных репозиториев следуйте документации по GitHub, чтобы включить граф зависимостей для удовлетворения этого требования.
Известные ограничения
- Версия vcpkg, связанная с GitHub Actions runners, может не быть актуальной. Используйте последнюю версию vcpkg, чтобы получить доступ к этой функции и получить последние исправления ошибок.
- Функции, зависящие от графа зависимостей, такие как оповещения Dependabot и pull requests Dependabot, пока недоступны. Сообщите нам, заинтересованы ли вы в этих функциях!
Пример рабочего процесса GitHub Actions
Замечание
В этом примере предполагается, что существует допустимый vcpkg.json манифест, который перечисляет некоторые зависимые порты. Дополнительные сведения о манифестах см. в документации по режиму манифеста.
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