Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects
Commit f69d0d3f authored by Edouard Mangel's avatar Edouard Mangel
Browse files

pnpm + TP11

parent 0600dcb6
No related branches found
No related tags found
No related merge requests found
This diff is collapsed.
File added
../S9/package.json
\ No newline at end of file
{
"name": "s10",
"type": "module",
"private": true,
"scripts": {
"build": "slidev build",
"dev": "slidev --open",
"export": "slidev export"
},
"dependencies": {
"@slidev/cli": "^51.4.0",
"@slidev/theme-default": "latest",
"@slidev/theme-seriph": "latest",
"vue": "^3.5.13"
},
"devDependencies": {
"@iconify-json/fxemoji": "^1.2.1",
"@iconify-json/logos": "^1.2.4",
"@iconify-json/twemoji": "^1.2.2",
"playwright-chromium": "^1.52.0"
}
}
\ No newline at end of file
This diff is collapsed.
......@@ -11,7 +11,7 @@ author: Edouard MANGEL
# keywords field for exported PDF, comma-delimited
keywords: Ynov CICD Séance 4
exportFilename: Ynov CICD Séance 4
exportFilename: "CICD-Docker"
layout: cover
background: "/background-cover.png"
......
No preview for this file type
......@@ -16,6 +16,6 @@
"devDependencies": {
"@iconify-json/logos": "^1.2.4",
"@iconify-json/twemoji": "^1.2.2",
"playwright-chromium": "^1.50.1"
"playwright-chromium": "^1.52.0"
}
}
......@@ -158,6 +158,7 @@ ports:
- "8080:80"
- "9229:9229"
```
Ici, `ports` est la **clé**, et la valeur est une liste contenant 3 éléments (strings).
</v-click>
......
File added
This diff is collapsed.
......@@ -11,7 +11,7 @@ author: Edouard MANGEL
# keywords field for exported PDF, comma-delimited
keywords: Ynov CICD Séance 6
exportFilename: "Ynov CICD Séance 6"
exportFilename: "Docker compose"
layout: cover
background: "/background-cover.png"
......
# TP 10 : Automatisation du déploiement
---
## **Objectif :** Mettre en place un job qui va automatiser le déploiement de votre projet dans un environnement de test ou de production.
Pour ce TP, vous allez mettre en place un job dans votre pipeline CI/CD qui va automatiser le déploiement de votre projet dans un environnement de test ou de production.
Pour ce TP, vous pouvez commencer avec un projet .NET de votre choix.
## 1. **Création du compte** :
Pour ce TP, vous utiliserez le compte Scalingo auquel vous avez accès grâce au partenariat avec l'école.
## 2. Créez une application dans Scalingo
- Créez une application dans Scalingo.
- Allez sur la documentation de Scalingo et suivez les instructions pour créer une application.
### Paramétrez votre application dans Scalingo
- Allez dans les variables d'environnement de votre application, et ajoutez la variable d'environnement suivante :
```
BUILDPACK_URL=https://github.com/edouard-mangel/dotnetcore-buildpack.git
```
- Branchez l'environnement de votre application sur le dépôt GitLab de votre projet.
- Allez dans l'onglet déploiement, et lancez un déploiement manuel de votre application.
- Vérifiez que l'application est bien déployée et accessible depuis l'URL de votre application Scalingo.
### Faites en sorte que les déploiements soient automatiques sur la branche `develop` de votre projet
### Faites en sorte que les déploiements soient manuels sur la branche `main` de votre projet
Maintenant, à chaque commit dans develop, votre pipeline d'intégration continue va automatiquement déployer votre application dans l'environnement de test de Scalingo.
A chaque fois que les tests manuels seront concluants, vous pourrez faire un merge dans la branche main, et le pipeline de déploiement continu pourra déployer votre application dans l'environnement de production de Scalingo en un clic.
File added
File added
......@@ -10,7 +10,7 @@ importers:
dependencies:
'@slidev/cli':
specifier: ^51.4.0
version: 51.4.0(@babel/parser@7.26.10)(@nuxt/kit@3.16.0)(@types/markdown-it@14.1.2)(@types/node@18.19.80)(@vue/compiler-sfc@3.5.13)(markdown-it-async@2.2.0)(postcss@8.5.3)
version: 51.4.0(@babel/parser@7.26.10)(@nuxt/kit@3.16.0)(@types/markdown-it@14.1.2)(@types/node@18.19.80)(@vue/compiler-sfc@3.5.13)(markdown-it-async@2.2.0)(playwright-chromium@1.51.1)(postcss@8.5.3)
'@slidev/theme-default':
specifier: latest
version: 0.25.0
......@@ -20,6 +20,19 @@ importers:
vue:
specifier: ^3.5.13
version: 3.5.13(typescript@5.8.2)
devDependencies:
'@iconify-json/fxemoji':
specifier: ^1.2.1
version: 1.2.1
'@iconify-json/logos':
specifier: ^1.2.4
version: 1.2.4
'@iconify-json/twemoji':
specifier: ^1.2.2
version: 1.2.2
playwright-chromium:
specifier: ^1.51.1
version: 1.51.1
packages:
......@@ -336,12 +349,21 @@ packages:
'@iconify-json/carbon@1.2.8':
resolution: {integrity: sha512-6xh4YiFBz6qoSnB3XMe23WvjTJroDFXB17J1MbiT7nATFe+70+em1acRXr8hgP/gYpwFMHFc4IvjA/IPTPnTzg==}
'@iconify-json/fxemoji@1.2.1':
resolution: {integrity: sha512-qMuMfWzeq9hWejgQFELrsqPKRp9xjG71uqG8ATLce89CuDtfXf1E0XerbEQeMaiOEPv1Gi5nefnpLGaryzGa5w==}
'@iconify-json/logos@1.2.4':
resolution: {integrity: sha512-XC4If5D/hbaZvUkTV8iaZuGlQCyG6CNOlaAaJaGa13V5QMYwYjgtKk3vPP8wz3wtTVNVEVk3LRx1fOJz+YnSMw==}
'@iconify-json/ph@1.2.2':
resolution: {integrity: sha512-PgkEZNtqa8hBGjHXQa4pMwZa93hmfu8FUSjs/nv4oUU6yLsgv+gh9nu28Kqi8Fz9CCVu4hj1MZs9/60J57IzFw==}
'@iconify-json/svg-spinners@1.2.2':
resolution: {integrity: sha512-DIErwfBWWzLfmAG2oQnbUOSqZhDxlXvr8941itMCrxQoMB0Hiv8Ww6Bln/zIgxwjDvSem2dKJtap+yKKwsB/2A==}
'@iconify-json/twemoji@1.2.2':
resolution: {integrity: sha512-ckWEY5KhIQgdFd9VGvfhecTtYUx3ihXycwlZcEws87LxuvIThMHNBCblrQQ5afhbGMfg21dF+z9F+ODMRDYHMg==}
'@iconify/types@2.0.0':
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
......@@ -2093,6 +2115,16 @@ packages:
plantuml-encoder@1.4.0:
resolution: {integrity: sha512-sxMwpDw/ySY1WB2CE3+IdMuEcWibJ72DDOsXLkSmEaSzwEUaYBT6DWgOfBiHGCux4q433X6+OEFWjlVqp7gL6g==}
playwright-chromium@1.51.1:
resolution: {integrity: sha512-IQpN8lgv/fx++WRxT8ITZylDwYAamd3Fv5H9g2AWsicp0N829L1oXHziK/6l9h/TMxioSTqc4ifPiZLS8nITxw==}
engines: {node: '>=18'}
hasBin: true
playwright-core@1.51.1:
resolution: {integrity: sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==}
engines: {node: '>=18'}
hasBin: true
points-on-curve@0.2.0:
resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==}
......@@ -2988,6 +3020,14 @@ snapshots:
dependencies:
'@iconify/types': 2.0.0
'@iconify-json/fxemoji@1.2.1':
dependencies:
'@iconify/types': 2.0.0
'@iconify-json/logos@1.2.4':
dependencies:
'@iconify/types': 2.0.0
'@iconify-json/ph@1.2.2':
dependencies:
'@iconify/types': 2.0.0
......@@ -2996,6 +3036,10 @@ snapshots:
dependencies:
'@iconify/types': 2.0.0
'@iconify-json/twemoji@1.2.2':
dependencies:
'@iconify/types': 2.0.0
'@iconify/types@2.0.0': {}
'@iconify/utils@2.3.0':
......@@ -3238,7 +3282,7 @@ snapshots:
'@sindresorhus/merge-streams@2.3.0':
optional: true
'@slidev/cli@51.4.0(@babel/parser@7.26.10)(@nuxt/kit@3.16.0)(@types/markdown-it@14.1.2)(@types/node@18.19.80)(@vue/compiler-sfc@3.5.13)(markdown-it-async@2.2.0)(postcss@8.5.3)':
'@slidev/cli@51.4.0(@babel/parser@7.26.10)(@nuxt/kit@3.16.0)(@types/markdown-it@14.1.2)(@types/node@18.19.80)(@vue/compiler-sfc@3.5.13)(markdown-it-async@2.2.0)(playwright-chromium@1.51.1)(postcss@8.5.3)':
dependencies:
'@antfu/ni': 24.2.0
'@antfu/utils': 9.1.0
......@@ -3309,6 +3353,8 @@ snapshots:
vue: 3.5.13(typescript@5.8.2)
yaml: 2.7.0
yargs: 17.7.2
optionalDependencies:
playwright-chromium: 1.51.1
transitivePeerDependencies:
- '@babel/parser'
- '@nuxt/kit'
......@@ -5275,6 +5321,12 @@ snapshots:
plantuml-encoder@1.4.0: {}
playwright-chromium@1.51.1:
dependencies:
playwright-core: 1.51.1
playwright-core@1.51.1: {}
points-on-curve@0.2.0: {}
points-on-path@0.2.1:
......
# TP 11 : Infra as Code
## 1. Introduction
Après ce cours théorique, il est temps de passer à la pratique. Nous allons utiliser Terraform pour créer une infrastructure sur Scalingo.
Lors des précédents TPs, vous avez pu vous familiariser avec Scalingo et ses outils. Vous avez notamment pu créer une application de manière manuelle, et héberger votre back-end en C#.
Dans ce TP, nous allons automatiser la création de cette application en utilisant Terraform. Nous allons également créer une base de données PostgreSQL, et la connecter à notre application.
## 2. Prérequis
Avant de commencer, assurez-vous d'avoir les éléments suivants :
- Un compte Scalingo. Si vous n'en avez pas, vous pouvez en créer un gratuitement sur le site de Scalingo.
- Un projet C# prêt à être déployé sur Scalingo. Vous pouvez utiliser le projet que vous avez créé lors du TP précédent, ou en créer un nouveau.
## 3. Créer un projet C# sur Scalingo via la CLI
Dans cette section, nous allons créer un projet C# sur Scalingo en utilisant la CLI de Scalingo.
**Dans un fichier bash, écrivez l'ensemble des scripts nécessaires pour créer et déployer une application C# sur Scalingo.**
### 3.1 Installer la CLI de Scalingo
Pour créer un projet C# sur Scalingo, vous pouvez utiliser le CLI de Scalingo.
Suivez les étapes listées dans la documentation de Scalingo pour installer la CLI et créer votre projet.
https://doc.scalingo.com/platform/cli/start#install-scalingo-cli
### 3.2 Créer un projet C# sur Scalingo
1. Une fois la CLI installée, ouvrez un terminal et connectez-vous à votre compte Scalingo en utilisant la commande suivante.
```bash
scalingo login
```
2. Créez une nouvelle application
3. Ajoutez le Buildpack C# en tant que variable d'environnement.
4. Poussez votre code sur Scalingo, et effectuez un déploiement.
### 3.2 Créer une base de données PostgreSQL
1. Ajoutez une base de données PostgreSQL à votre application en tant que variable d'environnement.
2. Testez que vous arrivez à vous connecter à la base de données depuis la CLI Scalingo. Jouez une commande d'insertion sur la base de données, et une suppression par exemple.
3. Récupérez l'URL de la base de données et ajoutez-la à votre application (Dans Scalingo) en tant que variable d'environnement.
4. Testez que l'application arrive à se connecter à la base de données.
### 3.4 Utiliser les commandes de la CLI pour gérer votre application
Pour garantir la sécurité des données de votre application, vous devez vous assurer que votre application est correctement configurée.
En particulier, vous allez tester que la base de données est bien répiquée, et que les données sont bien sauvegardées dans un dump qui est stocké sur Scalingo.
Pour cela, utilisez un script SQL qui va insérer un certain nombre de données dans la base de données.
Ensuite, téléchargez un dump de la base de données, et vérifiez que les données sont bien présentes dans le dump.
Enfin, essayez de supprimer la base de données, et de la restaurer à partir du dump.
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment