Utiliser GitHub Codespaces pour compiler et déboguer

Si vous disposez d’un abonnement GitHub Team ou GitHub Enterprise Cloud, vous pouvez utiliser GitHub Codespaces pour configurer votre projet afin qu’il se génère dans un conteneur hébergé par GitHub. À l'aide de la fonctionnalité Remote de Visual Studio Code, vous pouvez connecter le Visual Studio Code sur votre bureau à Codespace et modifier, générer, déployer et déboguer directement à partir de Codespace.

Cette rubrique décrit l’utilisation de GitHub Espaces de code pour modifier, générer, déployer et déboguer vos applications Azure Sphere à distance ; Utiliser des conteneurs pour la génération et le débogage avec Visual Studio Code décrit l’utilisation de Visual Studio Code pour modifier, générer, déployer et déboguer vos Azure Sphere applications dans un conteneur localement.

Pour utiliser Codespaces, votre projet doit être configuré en tant que référentiel GitHub et également configuré pour une utilisation dans un conteneur. Dans cette rubrique, vous allez créer un projet Blink avec la configuration appropriée.

Créer un référentiel GitHub pour votre projet

Créez un dépôt empty GitHub comme suit :

  1. Connectez-vous à github.com.

  2. Dans votre page d’accueil GitHub, sélectionnez le bouton New en regard du mot Repositories.

  3. Donnez un nom à votre dépôt, tel que Blink, puis sélectionnez Créer un dépôt.

  4. Sous Configuration rapide : si vous avez déjà effectué ce type d’opération, copiez l’URL HTTPS de votre dépôt.

  5. À l’invite de commandes, clonez votre nouveau référentiel sur votre bureau local comme suit :

    git clone <repository-url>
    

    Vous devez voir un avertissement indiquant que vous avez cloné un référentiel vide.

Ouvrez Visual Studio Code et créez un projet comme suit :

  1. Sélectionnez View>Command Palette>Azure Sphere : Générer un nouveau projet.
  2. Sous Sélectionner un modèle, sélectionnez Blink.
  3. Dans la boîte de dialogue Sélectionner un dossier , spécifiez un dossier dans lequel créer le projet. (Il peut s’agir de n’importe où : vous allez copier le contenu de ce dossier dans le référentiel GitHub précédemment créé.)
  4. Spécifiez un nom de projet qui correspond au nom de votre référentiel GitHub, tel que Blink, puis appuyez sur Enter.
  5. Copiez vos fichiers projet Azure Sphere (y compris tous les sous-dossiers tels que .vscode et HardwareDefinitions) dans votre clone local, validez et envoyez (push) les modifications. Vous pouvez ensuite supprimer le dossier de projet créé dans cette section, car tout se trouve dans le référentiel GitHub.

Configurer le dossier .devcontainer

Dans le répertoire de niveau supérieur de votre dépôt GitHub, créez un dossier nommé .devcontainer. Dans ce dossier, créez un fichier nommé devcontainer.json avec le contenu suivant :

{
    "name": "Azure Sphere Blink",
    "runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"],
    "build": {
        "dockerfile": "Dockerfile",
        "target": "dev"
    },

    // Use 'settings' to set *default* container specific settings.json values on container create.
    // You can edit these settings after create using File > Preferences > Settings > Remote.
    "settings": {
        "terminal.integrated.shell.linux": "/bin/bash"
    },

    // Use 'appPort' to create a container with published ports. If the port isn't working, be sure
    // your server accepts connections from all interfaces (0.0.0.0 or '*'), not just localhost.
    // "appPort": [],

    // Uncomment the next line to run commands after the container is created.
    // "postCreateCommand": "gcc -v",

    // Comment out the next line if you want to run as root instead
    "remoteUser": "vscode",

    // Add the IDs of extensions you want installed when the container is created in the array below.
    "extensions": [
        "ms-vscode.azure-sphere-tools",
        "ms-vscode.azure-sphere-tools-ui"
    ]
}

Ensuite, créez un fichier nommé Dockerfile dans le dossier .devcontainer avec le contenu suivant :

FROM mcr.microsoft.com/azurespheresdk:latest AS dev

FROM dev AS build
COPY ./ /src/
WORKDIR /out
RUN cmake -G "Ninja" -DCMAKE_TOOLCHAIN_FILE="/opt/azurespheresdk/CMakeFiles/AzureSphereToolchain.cmake" \
    -DAZURE_SPHERE_TARGET_API_SET="latest-lts" -DCMAKE_BUILD_TYPE="Release" "/src"
ENTRYPOINT [ "ninja" ]

La ligne initiale FROM spécifie l’image Docker standard Azure Sphere comme conteneur de développement de base, et la seconde indique d’utiliser ce conteneur de base comme environnement de build. La COPY ligne copie le contenu du référentiel dans le répertoire /src/ du conteneur. Le WORKDIR spécifie le répertoire de génération. La RUN commande fournit la commande CMake pour générer les fichiers de build. Enfin, le ENTRYPOINT indique que ninja doit être invoqué pour construire effectivement l’application.

Validez les modifications apportées à votre projet GitHub et envoyez(push) les modifications.

Installer l’extension Codespaces GitHub

Pour installer l’extension codespaces GitHub :

  1. Ouvrez le dossier du référentiel GitHub dans Visual Studio Code, s’il n’est pas déjà fait.
  2. Ouvrez Extensions à partir de la barre d’activité Visual Studio Code.
  3. Recherchez « GitHub Codespaces » et installez l’extension codespaces GitHub.

Créer un espace de code

  1. Sélectionnez Affichage>Palette de commandes>Codespaces : créer un codespace.

  2. Dans la liste déroulante des référentiels, sélectionnez Blink. Si votre référentiel n’apparaît pas dans la liste déroulante, vous pouvez taper son nom dans la zone de texte au-dessus de la liste.

  3. Dans la liste déroulante des branches, sélectionnez-en une.

    La barre de titre dans Visual Studio Code change pour indiquer que vous êtes en train de modifier dans un Codespace. Si vous ouvrez l’onglet Extensions dans la barre de navigation gauche, vous voyez les extensions installées localement et celles installées dans le conteneur distant.

Compiler et déboguer le projet

Appuyez sur F5, ou sélectionnez Démarrer>le débogage, pour générer votre projet et commencer le débogage. Votre application se compile et s’installe directement sur votre appareil comme d’habitude. Si vous avez défini un point d’arrêt dans votre code, l’application s’exécute jusqu’à ce que le point d’arrêt soit atteint. Vous pouvez utiliser les commandes de débogage habituelles pour parcourir votre code. Pour plus d’informations, consultez la rubrique Debugging dans la documentation Visual Studio Code.

Lorsque vous avez terminé le débogage, appuyez sur Maj+F5 ou sur l’icône Arrêter . Pour fermer le codespace, sélectionnez Affichage>Palette de commandes>Codespaces : arrêter le codespace actif.