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'ongletRun 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
-
Monter la version de l'extension avec
npm version
. Vous pouvez voir comment utiliser la commande ici. -
Lorsque le travail est poussé sur la branche
master
, une version de l'extension est poussé enpre-release
sur la marketplace.
Constuire une version release
-
Monter la version de l'extension avec
npm version
. Vous pouvez voir comment utiliser la commande ici. -
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:
- Aller sur https://www.dev.deadlock.io/. La page d'authentification doit apparaitre.
- Se connecter via Google. Être redirigé vers la page d'accueil.
- Sélectionner et lancer une mission du type
desktop
. Les instructions de la mission doivent apparaître sur la page. - 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.
- 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.
- Désinstaller l'extension, relancer l'IDE, et chercher
deadlock
dans la barre de recherche de lamarketplace
. L'extension doit apparaitre dans les 3 premiers résultats. Reinstaller l'extension. - 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.
- 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.
- S'authentifier avec Google et retourner dans VSCode. Une notification de connexion doit s'afficher.
- Ouvrir la page de l'extension, elle doit indiquer que les étapes précédentes (choix du dossier et authentification) ont été validées.
- 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. - 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, ...).