Skip to content
Snippets Groups Projects
Select Git revision
  • feat-change_user
  • master default protected
  • docs-improve_user_path_description
  • fix-pipeline
  • ci-change_exercises_image_registry
  • feat-merge_recorder_in_extension
  • feat-default_folder
  • develop protected
  • refactor-mission
  • feat-exercise_automatic_save
  • docs-improve_documentation
  • feat-create_little_container_for_developer
  • feat-local-dev
  • 0.1.12
  • 0.1.11
  • 0.1.10
  • 0.1.5
17 results

dev

  • Clone with SSH
  • Clone with HTTPS
  • Lansana DIOMANDE's avatar
    Lansana DIOMANDE authored and Alexandra committed
    feat(extension): login, open in devcontainer, automaticly save code, open briefing, publish extension
    0ecbf550
    History
    Name Last commit Last update
    ..
    ressources
    README.md

    Deadlock Coding

    Extension VSCode permettant de :

    • récupérer la mission en cours à partir du /home/config/user-challenge.json
    • afficher les consignes de la mission depuis un README.md.

    Quick start

    • Ouvrir le dossier deadlock-extension dans Vscode
    • Lancer le script setup-dev-env.sh pour simuler la configuration d'une mission
    • Lancer le script install.sh
    • Dans l'éditeur, appuyer sur F5 (ou utiliser l'onglet Run and Debug).

    Gitlab CI pour publier l'extension

    Le pipeline a besoin d'un token provenant de la marketplace pour y publier l'extension.

    • La méthode pour obtenir le token est décrite ici
    • Le token doit être inséré en tant que valeur de la variable VSCODE_EXTENSION_MARKET_PLACE_ACCESS_TOKEN

    Le token a une durée de vie maximale de 1 an

    Gestion de la production et de la pré-production

    Pour le moment, la marketplace de Vscode ne supporte pas totalement le semver(spécialement les suffixes). Il n'est pas possible de créer une version 0.0.1-alpha de l'extension par example.

    Construire une version pré-release

    1. Monter la version de l'extension avec npm version. Vous pouvez voir comment utiliser la commande ici.

    2. Lorsque le travail est poussé sur la branche master, une version de l'extension est poussé en pre-release sur la marketplace.

    Constuire une version release

    1. Monter la version de l'extension avec npm version. Vous pouvez voir comment utiliser la commande ici.

    2. Pousser le code source et le tag :

    git tag [X.Y.Z]
    git push origin [taBranch] --tags

    Publier l'extention à la main

    Les commandes nécessaires sont prédéfinies dans le package.json :

    npm run vsce-package
    npm run vsce-publish -- [--pre-release] -p [token]

    La méthode pour obtenir le token est décrite ici

    Le cas d'usage à essayer

    Le cas d'usage à essayer pour valider une US Deadlock Desktop correspond à un scénario utilisateur. Ce scénario doit être mis à jour à chaque mise à jour.

    Configuration de base :

    • OS: Ubuntu 20.04.4 LTS
    • Navigateur: Mozilla Firefox (v99.0+), Google Chrome (v101.0+)
    • Docker version 20.10.14, build a224086
    • Visual Studio Code (v1.66.2+)

    Steps:

    1. Aller sur https://www.dev.deadlock.io/. La page d'authentification doit apparaitre.
    2. Se connecter via Google. Être redirigé vers la page d'accueil.
    3. Sélectionner et lancer une mission du type desktop. Les instructions de la mission doivent apparaître sur la page.
    4. Tous les liens sur la page de la mission doivent fonctionner : installation de dépendances, la page de l'extension sur la marketplace, et le lien xdg-open permettant d'ouvrir Vscode.
    5. Lorsque VS Code est ouvert, une fenêtre doit apparaitre et suggérer l'installation de l'extension. Accepter l'installation. L'installation doit fonctionner et une notification de bienvenue doit apparaître.
    6. Désinstaller l'extension, relancer l'IDE, et chercher deadlock dans la barre de recherche de la marketplace. L'extension doit apparaitre dans les 3 premiers résultats. Reinstaller l'extension.
    7. Re-cliquer sur le lien de l'exercice dans le navigateur. La fenêtre demandant de choisir un dossier pour les exercices doit s'ouvrir.
    8. Sélectionner un dossier ne nécessitant pas de droits d'accès. Une page doit s'ouvrir dans le navigateur par défault pour permettre à l'utilisateur de s'authentifier.
    9. S'authentifier avec Google et retourner dans VSCode. Une notification de connexion doit s'afficher.
    10. Ouvrir la page de l'extension, elle doit indiquer que les étapes précédentes (choix du dossier et authentification) ont été validées.
    11. Une fois authentifié, VSCode doit se réouvrir automatiquement dans le devcontainer. L'arborescence de fichiers doit être montée dans le dossier des exercices.
    12. Ouvrir le terminal de VSCode. L'utilisateur en cours doit être deadlock et les bibliothèques et exécutables nécessaires à la mission doivent être présents (ex: docker, java, node, ...).