Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Continuous Deployment

on:
# Déclenché manuellement ou après un merge sur main
workflow_dispatch:
push:
branches: [ main ]

jobs:
# Job de construction de l'image
build:
runs-on: self-hosted

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Build Docker image
run: |
echo "Building Docker image..."
docker build -t angular-app:${{ github.sha }} .

- name: Tag images for environments
run: |
docker tag angular-app:${{ github.sha }} angular-app:staging
docker tag angular-app:${{ github.sha }} angular-app:production

# Déploiement en staging
deploy-staging:
needs: build
runs-on: self-hosted
environment: staging

steps:
- name: Deploy to staging
run: |
echo "Deploying to staging environment..."
docker-compose up -d app-staging
echo "Deployment to staging completed."

- name: Verify staging deployment
run: |
echo "Verifying staging deployment..."
# Attendre que l'application soit prête
sleep 5
# Vérifier que l'application répond
curl -s http://localhost:8080 | grep -q "conduit" && echo "✅ Application is running correctly in staging" || (echo "❌ Staging verification failed" && exit 1)

# Déploiement en production
deploy-production:
needs: deploy-staging
runs-on: self-hosted
environment: production

steps:
- name: Deploy to production
run: |
echo "Deploying to production environment..."
docker-compose up -d app-production
echo "Deployment to production completed."

- name: Verify production deployment
run: |
echo "Verifying production deployment..."
# Attendre que l'application soit prête
sleep 5
# Vérifier que l'application répond
curl -s http://localhost:80 | grep -q "conduit" && echo "✅ Application is running correctly in production" || (echo "❌ Production verification failed" && exit 1)
17 changes: 17 additions & 0 deletions DEPLOYMENT_CI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Déploiement automatisé avec CI/CD

Ce document décrit comment configurer le déploiement automatisé via GitHub Actions.

## Avantages du CI/CD

- Déploiement automatique à chaque push sur main
- Vérification de qualité systématique
- Cohérence entre environnements
- Traçabilité des déploiements

## Configuration requise

- Compte GitHub
- Docker Hub
- Serveur de production
Ligne ajoutée par master
27 changes: 27 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
version: '3.8'

services:
# Environnement de staging
app-staging:
image: angular-app:staging
container_name: app-staging
ports:
- "8080:80"
restart: unless-stopped
networks:
- app-network

# Environnement de production
app-production:
image: angular-app:production
container_name: app-production
ports:
- "80:80"
restart: unless-stopped
networks:
- app-network

networks:
app-network:
driver: bridge