Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce tutoriel vous guide tout au long de la création d’un port de superposition pour une bibliothèque hébergée sur un référentiel Azure DevOps privé, couvrant la configuration de l’authentification et l’empaquetage dans une superposition.
Configuration requise :
- Compréhension de base de Git et vcpkg.
- Accès à Azure DevOps avec des autorisations pour créer des projets et gérer des clés SSH.
vcpkg
installé sur votre système.- Git installé sur votre système.
1 - Créer un projet privé
- Connectez-vous à votre compte Azure DevOps
- Créez un projet privé. Si vous n’avez pas d’organisation, vous êtes invité à en créer un pendant le processus de création du projet.
Nommez votre projet : choisissez un nom explicite qui reflète votre bibliothèque ou son objectif.
Visibilité : vérifiez que le projet est défini sur « Privé » pour contrôler l’accès.
2 - Configurer l’authentification dans Azure DevOps
Sécuriser l’accès à votre référentiel avec des clés SSH.
Générer une paire de clés SSH
Ouvrez un terminal ou une invite de commandes.
Exécutez la commande suivante :
ssh-keygen -t rsa -b 4096 -C "ADO-RSA" -f /path/to/.ssh/id_rsa_ado
-t rsa
: spécifie le type de clé à créer, dans ce cas, RSA.-b 4096
: définit le nombre de bits dans la clé, dans ce cas, 4096, qui est considéré comme fort et sécurisé.-C "ADO-RSA"
: ajoute une étiquette à la clé pour l’identification, ce qui peut être particulièrement utile lorsque vous avez plusieurs clés.-f /path/to/.ssh/id_rsa_ado
: spécifie le nom de fichier de la nouvelle clé. Cette commande enregistre la clé privée dansid_rsa_ado
et la clé publique dansid_rsa_ado.pub
.
Vous serez invité à entrer une phrase secrète pour une sécurité supplémentaire. Vous pouvez entrer une phrase secrète ou appuyer sur Entrée pour continuer sans une phrase secrète. Une phrase secrète ajoute une couche de sécurité supplémentaire en exigeant que la phrase secrète soit entrée chaque fois que la clé est utilisée.
Une fois la génération de clé terminée, vérifiez que la nouvelle clé est créée en répertoriant le contenu de votre
/.ssh/
répertoire :ls /path/to/.ssh
Ajouter votre clé SSH à Azure DevOps
Ouvrez le
id_rsa_ado.pub
fichier avec un éditeur de texte pour afficher la clé publique.Copiez l’intégralité du contenu du fichier.
Accédez à votre utilisateur Paramètres > clés publiques SSH.
Ajoutez votre nouvelle clé en collant le contenu copié et nommez votre clé pour référence ultérieure.
Chargez votre clé SSH dans l’agent SSH.
Vérifiez que votre clé SSH est disponible pour l’authentification :
ssh-add /path/to/.ssh/id_rsa_ado
Tester la connexion SSH
Vérifiez la connectivité à Azure DevOps :
ssh -T git@ssh.dev.azure.com
Attendez-vous à un message indiquant une authentification réussie, mais notant que l’accès à l’interpréteur de commandes n’est pas pris en charge.
ssh -T git@ssh.dev.azure.com remote: Shell access is not supported. shell request failed on channel 0
3 - Charger la bibliothèque dans le référentiel Azure DevOps
Initialiser un dépôt git local
Accédez au répertoire de code source de votre bibliothèque et initialisez un dépôt Git :
git init
Validez votre bibliothèque Ajouter et valider le code source de votre bibliothèque :
git add . git commit -m "Initial commit of the sample library"
Lien vers votre référentiel Azure DevOps
Récupérez l’URL SSH de votre référentiel à partir d’Azure DevOps et ajoutez-la en tant que distante :
git remote add origin <Your-Repo-SSH-URL>
Envoyer (push) votre bibliothèque
Chargez votre bibliothèque dans le référentiel Azure DevOps :
git push -u origin master:main
4 - Empaqueter votre bibliothèque dans un port de superposition
Les ports de superposition vous permettent d’utiliser des ports locaux avec vcpkg.
Créer un répertoire de ports de superposition
mkdir vcpkg-overlay-ports cd vcpkg-overlay-ports
Configurer les fichiers de port
vcpkg.json
: ce fichier manifeste définit les métadonnées et les dépendances de votre bibliothèque.Exclusion de responsabilité : les exemples suivants utilisent des espaces réservés. Remplacez-les par vos données réelles.
{ "name": "your-library-name", "version": "1.0.0", "description": "Description of your library.", "dependencies": [] }
Le
vcpkg.json
fichier sert de manifeste qui définit les métadonnées et les dépendances d’une bibliothèque C++, fournissant à vcpkg les informations nécessaires pour générer, installer et gérer le package.name
: spécifie le nom de la bibliothèque. Il s’agit de l’identificateur du package.version
: indique le numéro de version de la bibliothèque.description
: texte bref décrivant ce que fait la bibliothèque. Il s’agit de la documentation et des utilisateurs.dependencies
: tableau contenant la liste des dépendances dont la bibliothèque a besoin.
Pour plus d’informations sur la configuration de votre
vcpkg.json
, case activée notre documentation de référence.portfile.cmake
: ce script indique à vcpkg comment générer votre bibliothèque.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")
Ce fichier de port définit comment télécharger, générer, installer et empaqueter une bibliothèque C++ spécifique à partir de GitHub à l’aide de vcpkg.
vcpkg_from_git
: démarre la fonction pour télécharger le code source à partir d’un dépôt Git.OUT_SOURCE_PATH SOURCE_PATH
: définit le répertoire dans lequel le code source sera extrait.URL git@ssh.dev.azure.com:v3/YourOrg/YourProject/YourRepo
: URL SSH du référentiel contenant le code source.REF <commit-sha>
: sha de validation du code de votre bibliothèque dans Azure DevOps.vcpkg_cmake_configure
: configure le projet à l’aide de CMake, en configurant la build.SOURCE_PATH "${SOURCE_PATH}"
: chemin d’accès au code source téléchargé précédemment.
vcpkg_cmake_install()
: génère et installe le package à l’aide de CMake.vcpkg_cmake_config_fixup(PACKAGE_NAME your-library-name)
: corrige les fichiers de configuration du package CMake pour qu’ils soient compatibles avec Vcpkg.file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION ...)
: installe le fichier LICENSE dans le répertoire de partage du package et le renomme en droits d’auteur.
Pour obtenir le sha de validation :
mkdir temp && cd temp git init git fetch <Your-Repo-SSH-URL> main --depth 1 -n git rev-parse FETCH_HEAD
Pour plus d’informations sur la configuration de votre
portfile.cmake
, case activée outez les articles suivants :
Installer votre port
De retour dans votre répertoire vcpkg principal, installez votre bibliothèque en spécifiant le répertoire des ports de superposition :
vcpkg install your-library-name --overlay-ports=/path/to/vcpkg-overlay-ports
Étapes suivantes
Vous avez empaqueté un dépôt Azure DevOps privé en tant que port vcpkg. Ce tutoriel est destiné à être conçu comme une directive ; adaptez les instructions pour qu’elles correspondent à votre environnement de développement et de bibliothèque spécifique.