# Codespaces ou Codespeed

Il y a quelques semaines, je voulais contribuer au projet [Waxtane](https://github.com/MedouneSGB/Waxtane) pour ajouter de nouvelles fonctionnalités :

- Une plateforme web avec [Astro](https://astro.build/)
- L'intégration de [Svelet](https://svelte.dev/) pour une recherche 

Une opportunité pour moi de tester de nouveaux outils, mais quand il s'agit de tester, on se pose souvent les mêmes questions :

- Combien de temps ?
- Combien de ressources ?
- Est-ce qu'il ne faudrait pas compartimenter l’environnement ?
- Est-ce que ma machine va tenir ? Oui, après plus de 1000 testes, il faut faire attention.

Pour diminuer le stresse et rendre rapide le développement sur sa propre machine, [github](https://github.com) viens de lancer [**Codespaces**](https://github.com/features/codespaces).

## Codespaces c'est quoi ?

Un environnement de développement hébergé dans le cloud, je vous en ai déjà parlé dans l'article "[Code Cloud](https://til.dofbi.com/code-cloud)".

![codespaces-diagram.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1653274200743/m0ujzvMpo.png align="left")

Plus besoin de fatiguer votre machine, votre code, votre environnement et vos commandes son exécuté sur une machine virtuelle à distante et oui.

## Comment ça marche ?

Prenons un cas pratique, avec le projet Waxtane.

> PS: Si vous avez un compte sur [github](https://github.com) vous pouvez suivre ces instructions, sinon crée un compte, c'est gratuit

1. Rendez-vous à l'emplacement du projet [Waxtane](https://github.com/MedouneSGB/Waxtane).
![Projet Waxtane](https://cdn.hashnode.com/res/hashnode/image/upload/v1653279168519/qVzy-2fk6.png align="left")

1. Faite un Fork du projet en cliquant sur le bouton ***Fork***.
![Fork Projet](https://cdn.hashnode.com/res/hashnode/image/upload/v1653279241689/ireMauJci.png align="left")
1. Accédez à la page principale du projet nouvellement créé. Utilisez le menu déroulant Code et, dans l'onglet **Codespaces**, cliquez sur ***Create codespace on main***.
![new-codespace-button.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1653279276168/Itjty_619.png align="left")
1. Voilà votre environnement est en cours de préparation, vous avez deux options de travail à votre disposition, soit directement sur le **navigateur** ou **vs code** à vous de choisir.
![codespace init](https://cdn.hashnode.com/res/hashnode/image/upload/v1653279410003/zgQ5vWq7c.png align="left")

1. J'ai choisi de rester au navigateur.
![navigateur vs code](https://cdn.hashnode.com/res/hashnode/image/upload/v1653279513176/6S4GHPn1h.png align="left")

1. Depuis le navigateur, je peux lancer mon serveur de développement avec l'onglet Terminal.
![Terminal](https://cdn.hashnode.com/res/hashnode/image/upload/v1653279582191/FAcGiyK6d.png align="left")

1. Serveur lancé, je peux continuer de travail sans stress
![waxtane run](https://cdn.hashnode.com/res/hashnode/image/upload/v1653279612860/PfRrDlLhs.png align="left")

## Comment l'activé ?

Codespaces est disponible pour les organisations utilisant GitHub Team ou GitHub Enterprise Cloud. Vous ne disposez pas d'une organisation, vous pouvez en créer, c'est gratuit ou sinon rejoindre notre organisation [Code for Senegal](https://github.com/Code-for-Senegal)

## Des questions ?

Oui, n'hésitez pas à poster vos questions, contributions et j'aime, merci
