Руководство. Упаковка частной зависимости Azure DevOps
В этом руководстве описано, как создать порт наложения для библиотеки, размещенной в частном репозитории Azure DevOps, охватывая настройку проверки подлинности и упаковку в наложение.
Необходимые условия:
- Базовое понимание Git и vcpkg.
- Доступ к Azure DevOps с разрешениями на создание проектов и управление ключами SSH.
vcpkg
установлен в системе.- Git, установленный в вашей системе.
1. Создание частного проекта
- Войдите в учетную запись Azure DevOps
- Создайте частный проект. Если у вас нет организации, вам будет предложено создать ее во время процесса создания проекта.
Присвойте проекту имя: выберите понятное имя, которое отражает вашу библиотеку или ее назначение.
Видимость. Убедитесь, что для управления доступом для проекта задано значение Private.
2. Настройка проверки подлинности в Azure DevOps
Безопасный доступ к репозиторию с помощью ключей SSH.
Создание пары ключей SSH
Откройте терминал или командную строку.
Выполните следующую команду:
ssh-keygen -t rsa -b 4096 -C "ADO-RSA" -f /path/to/.ssh/id_rsa_ado
-t rsa
: указывает тип ключа для создания, в данном случае RSA.-b 4096
: задает количество битов в ключе, в данном случае 4096, которое считается сильным и безопасным.-C "ADO-RSA"
: добавляет метку в ключ для идентификации, что может быть особенно полезно при наличии нескольких ключей.-f /path/to/.ssh/id_rsa_ado
: указывает имя файла для нового ключа. Эта команда сохраняет закрытый ключ вid_rsa_ado
и открытый ключid_rsa_ado.pub
.
Вам будет предложено ввести парольную фразу для дополнительной безопасности. Можно ввести парольную фразу или нажать клавишу ВВОД, чтобы продолжить без нее. Парольная фраза добавляет дополнительный уровень безопасности, требуя ввода парольной фразы всякий раз, когда используется ключ.
После создания ключа убедитесь, что новый ключ создается, включив содержимое
/.ssh/
каталога еще раз:ls /path/to/.ssh
Добавление ключа SSH в Azure DevOps
id_rsa_ado.pub
Откройте файл с текстовым редактором, чтобы просмотреть открытый ключ.Скопируйте все содержимое файла.
Перейдите к открытому ключу SSH Параметры > пользователя.
Добавьте новый ключ, вставив скопированное содержимое и назовите ключ для будущей ссылки.
Загрузите ключ SSH в агент SSH.
Убедитесь, что ключ SSH доступен для проверки подлинности:
ssh-add /path/to/.ssh/id_rsa_ado
Проверка подключения SSH
Проверьте подключение к Azure DevOps:
ssh -T git@ssh.dev.azure.com
Ожидается сообщение, указывающее на успешную проверку подлинности, но отмечая, что доступ к оболочке не поддерживается.
ssh -T git@ssh.dev.azure.com remote: Shell access is not supported. shell request failed on channel 0
3. Отправка библиотеки в репозиторий Azure DevOps
Инициализация локального репозитория Git
Перейдите в каталог исходного кода библиотеки и инициализируйте репозиторий Git:
git init
Зафиксируйте и зафиксируйте исходный код библиотеки:
git add . git commit -m "Initial commit of the sample library"
Ссылка на репозиторий Azure DevOps
Получите URL-адрес SSH репозитория из Azure DevOps и добавьте его как удаленный:
git remote add origin <Your-Repo-SSH-URL>
Отправка библиотеки
Отправьте библиотеку в репозиторий Azure DevOps:
git push -u origin master:main
4. Упаковка библиотеки в порт наложения
Порты наложения позволяют использовать локальные порты с vcpkg.
Создание каталога портов наложения
mkdir vcpkg-overlay-ports cd vcpkg-overlay-ports
Настройка файлов портов
vcpkg.json
: этот файл манифеста определяет метаданные и зависимости библиотеки.Отказ. В следующих примерах используются заполнители. Замените их фактическими данными.
{ "name": "your-library-name", "version": "1.0.0", "description": "Description of your library.", "dependencies": [] }
Файл
vcpkg.json
служит манифестом, определяющим метаданные и зависимости библиотеки C++, предоставляя vcpkg необходимые сведения для сборки, установки и управления пакетом.name
: указывает имя библиотеки. Это используется в качестве идентификатора пакета.version
: указывает номер версии библиотеки.description
: краткий текст, описывающий то, что делает библиотека. Это предназначено для документации и пользователей.dependencies
: массив, содержащий список зависимостей, необходимых библиотеке.
Дополнительные сведения о настройке проверка
vcpkg.json
нашей справочной документации.portfile.cmake
: этот скрипт сообщает vcpkg, как создать библиотеку.vcpkg_from_git( OUT_SOURCE_PATH SOURCE_PATH URL "git@ssh.dev.azure.com:v3/YourOrg/YourProject/YourRepo" REF "<commit-sha>" ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME your-library-name) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/your-library-name")
Этот портфайл определяет, как скачать, построить, установить и упаковать определенную библиотеку C++ из GitHub с помощью vcpkg.
vcpkg_from_git
: запускает функцию для скачивания исходного кода из репозитория Git.OUT_SOURCE_PATH SOURCE_PATH
: задает каталог, в котором будет извлечен исходный код.URL git@ssh.dev.azure.com:v3/YourOrg/YourProject/YourRepo
: URL-адрес SSH для репозитория, содержащего исходный код.REF <commit-sha>
: фиксация SHA кода библиотеки в Azure DevOps.vcpkg_cmake_configure
: настраивает проект с помощью CMake, настраивая сборку.SOURCE_PATH "${SOURCE_PATH}"
: путь к исходному коду, скачанный ранее.
vcpkg_cmake_install()
: создает и устанавливает пакет с помощью CMake.vcpkg_cmake_config_fixup(PACKAGE_NAME your-library-name)
: исправляет файлы конфигурации пакета CMake, совместимые с Vcpkg.file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION ...)
: устанавливает файл LICENSE в общий каталог пакета и переименовывает его в авторские права.
Чтобы получить фиксацию SHA, выполните следующие действия:
mkdir temp && cd temp git init git fetch <Your-Repo-SSH-URL> main --depth 1 -n git rev-parse FETCH_HEAD
Дополнительные сведения о настройке проверка
portfile.cmake
следующих статей:
Установка порта
Вернитесь в основной каталог vcpkg, установите библиотеку, указав каталог портов наложения:
vcpkg install your-library-name --overlay-ports=/path/to/vcpkg-overlay-ports
Next Steps
Вы успешно упаковали частный репозиторий Azure DevOps в качестве порта vcpkg. Это руководство предназначено в качестве руководства; Адаптируйте инструкции в соответствии с конкретной библиотекой и средой разработки.