Поделиться через


vcpkg в средах непрерывной интеграции

В этой статье описывается, как эффективно использовать vcpkg в среде непрерывной интеграции (CI). Либо потому, что вы используете vcpkg для управления зависимостями проекта, либо у вас есть пользовательский реестр vcpkg и хотите добавить тесты CI для портов.

Получение vcpkg

Действия по получению vcpkg в среде CI совпадают с инструкциями по получению vcpkg в среде разработки. Чтобы получить исполняемый файл vcpkg, необходимо получить клон репозитория https://github.com/microsoft/vcpkg vcpkg.

Независимо от следующего метода приобретения настоятельно рекомендуется, чтобы экземпляр vcpkg был полностью журналом Git. Функция управления версиями vcpkg использует полный журнал фиксаций для получения определенных версий портов.

Использование vcpkg в качестве подмодулы

Простой способ получения vcpkg в среде CI — объявить репозиторий vcpkg в качестве подмодулы репозитория.

git submodule init
./vcpkg/vcpkg-bootstrap.sh

Использование интерфейса командной строки Git

Дополнительный метод — выполнить команду Git в рамках скриптов CI, чтобы клонировать экземпляр репозитория vcpkg.

git clone http://github.com/Microsoft/vcpkg
./vcpkg/vcpkg-bootstrap.sh

Использование стороннего действия или скрипта

В зависимости от поставщика, используемого для запуска среды CI, могут быть доступны сторонние скрипты, которые могут получить vcpkg в одном шаге. Команда vcpkg не поддерживает ни один из этих сторонних сценариев, и вы должны выполнить надлежащую осторожность, если вы планируете использовать любой из них.

Другие методы приобретения

Для сред CI не рекомендуется использовать следующие методы.

  • Сценарий однострочный установки: iex (iwr -useb https://aka.ms/vcpkg-init.ps1) или . <(curl https://aka.ms/vcpkg-init.sh -L). Это метод распространения vcpkg, который включает экспериментальную функцию артефактов и не рекомендуется для большинства пользователей.

Настройка двоичного кэша

Настоятельно рекомендуется включить двоичный кэш, чтобы избежать перестроения зависимостей проекта при каждом запуске CI.

Дополнительные сведения о двоичном кэшировании см. в следующих статьях:

Настройка кэша ресурсов

Настройка кэша ресурсов сделает среду CI более устойчивой к ошибкам, вызванным внешними службами.

Дополнительные сведения о кэшировании ресурсов см. в следующих статьях:

Примеры

В этих статьях показано, как все работает вместе: