feat+chore(frontend): déploiement selon l'env sélectionné, commentaires sur le fichier terraform

This commit is contained in:
ineszang44
2026-09-17 11:28:22 +02:00
parent a3d32a6fb1
commit 692ec436a5
@@ -1,13 +1,37 @@
locals {
frontend_environments = {
dev = {
source_dir = "${path.root}/../../../apps/frontend/dist/frontend-dev/browser"
domain = "dev.enervision"
}
rec = {
source_dir = "${path.root}/../../../apps/frontend/dist/frontend-rec/browser"
domain = "rec.enervision"
}
prod = {
source_dir = "${path.root}/../../../apps/frontend/dist/frontend-prod/browser"
domain = "enervision"
}
}
selected_frontend = local.frontend_environments[var.deployment_environment]
}
resource "null_resource" "frontend" { resource "null_resource" "frontend" {
depends_on = [module.k3s] depends_on = [module.k3s]
triggers = { triggers = {
environment = var.deployment_environment
build_hash = sha256(join("", [ build_hash = sha256(join("", [
for file in fileset("${path.root}/../../../apps/frontend/dist/frontend/browser", "**") : for file in fileset("${path.root}/../../../apps/frontend/dist/frontend/browser", "**") :
filesha256("${path.root}/../../../apps/frontend/dist/frontend/browser/${file}") filesha256("${path.root}/../../../apps/frontend/dist/frontend/browser/${file}")
])) ]))
} }
// Variables pour la connexion SSH
connection { connection {
type = "ssh" type = "ssh"
host = var.ssh_host host = var.ssh_host
@@ -16,6 +40,8 @@ resource "null_resource" "frontend" {
private_key = file(pathexpand(var.ssh_private_key_path)) private_key = file(pathexpand(var.ssh_private_key_path))
} }
// Lancement de script en SSH avec remote-exec
// Installation de Nginx et initialisation du répertoire du frontend
provisioner "remote-exec" { provisioner "remote-exec" {
inline = [ inline = [
"sudo apt-get update", "sudo apt-get update",
@@ -25,11 +51,13 @@ resource "null_resource" "frontend" {
] ]
} }
// Copie des fichiers vers le serveur
provisioner "file" { provisioner "file" {
source = "${path.root}/../../../apps/frontend/dist/frontend/browser/" source = "${path.root}/../../../apps/frontend/dist/frontend/browser/"
destination = "/tmp/enervision-frontend" destination = "/tmp/enervision-frontend"
} }
// Déplacement des fichiers
provisioner "remote-exec" { provisioner "remote-exec" {
inline = [ inline = [
"sudo cp -r /tmp/enervision-frontend/* /var/www/enervision/", "sudo cp -r /tmp/enervision-frontend/* /var/www/enervision/",