diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 1b5ea9a..aaa3eb0 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - dev jobs: # ───────────────────────────────────────────── @@ -19,11 +20,17 @@ jobs: # Le tag d'image dépend de la branche : # main → webzine:latest + # dev → webzine:dev - name: Set image tag id: vars run: | - echo "IMAGE_TAG=latest" >> $GITHUB_OUTPUT - echo "ENV_LABEL=production" >> $GITHUB_OUTPUT + if [ "${{ gitea.ref_name }}" = "main" ]; then + echo "IMAGE_TAG=latest" >> $GITHUB_OUTPUT + echo "ENV_LABEL=production" >> $GITHUB_OUTPUT + else + echo "IMAGE_TAG=dev" >> $GITHUB_OUTPUT + echo "ENV_LABEL=development" >> $GITHUB_OUTPUT + fi - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -57,42 +64,77 @@ jobs: deploy-production: name: Deploy to Production needs: build - runs-on: ubuntu-latest + if: gitea.ref_name == 'main' + runs-on: self-hosted steps: - - name: Deploy via SSH to PRODUCTION server - uses: appleboy/ssh-action@v1.0.3 - with: - host: ${{ secrets.PROD_SSH_HOST }} - username: ${{ secrets.PROD_SSH_USER }} - key: ${{ secrets.PROD_SSH_KEY }} - port: ${{ secrets.PROD_SSH_PORT || 22 }} - script: | - set -e + - name: Deploy on PRODUCTION server + run: | + set -e - echo "=== [PROD] Récupération de l'image ===" - docker login ${{ vars.REGISTRY_URL }} \ - -u ${{ secrets.REGISTRY_USERNAME }} \ - -p ${{ secrets.REGISTRY_PASSWORD }} + echo "=== [PROD] Récupération de l'image ===" + docker login ${{ vars.REGISTRY_URL }} \ + -u ${{ secrets.REGISTRY_USERNAME }} \ + -p ${{ secrets.REGISTRY_PASSWORD }} - docker pull ${{ vars.REGISTRY_URL }}/webzine/webzine:latest + docker pull ${{ vars.REGISTRY_URL }}/webzine/webzine:latest - echo "=== [PROD] Arrêt de l'ancien conteneur ===" - docker stop webzine-prod 2>/dev/null || true - docker rm webzine-prod 2>/dev/null || true + echo "=== [PROD] Arrêt de l'ancien conteneur ===" + docker stop webzine-prod 2>/dev/null || true + docker rm webzine-prod 2>/dev/null || true - echo "=== [PROD] Démarrage du nouveau conteneur ===" - docker run -d \ - --name webzine-prod \ - --restart unless-stopped \ - -p 80:8080 \ - -p 443:8081 \ - -v /opt/webzine/prod/data:/app/Data \ - -v /opt/webzine/prod/logs:/Logs \ - -e ASPNETCORE_ENVIRONMENT=Production \ - ${{ vars.REGISTRY_URL }}/webzine/webzine:latest + echo "=== [PROD] Démarrage du nouveau conteneur ===" + docker run -d \ + --name webzine-prod \ + --restart unless-stopped \ + -p 80:8080 \ + -p 443:8081 \ + -v /opt/webzine/prod/data:/app/Data \ + -v /opt/webzine/prod/logs:/Logs \ + -e ASPNETCORE_ENVIRONMENT=Production \ + ${{ vars.REGISTRY_URL }}/webzine/webzine:latest - echo "=== [PROD] Nettoyage des anciennes images ===" - docker image prune -f + echo "=== [PROD] Nettoyage des anciennes images ===" + docker image prune -f - echo "=== [PROD] Déploiement terminé ===" \ No newline at end of file + echo "=== [PROD] Déploiement terminé ===" + + # ───────────────────────────────────────────── + # DÉPLOIEMENT — Serveur de DÉVELOPPEMENT (branche dev) + # ───────────────────────────────────────────── + deploy-development: + name: Deploy to Development + needs: build + if: gitea.ref_name == 'dev' + runs-on: self-hosted + + steps: + - name: Deploy on DEVELOPMENT server + run: | + set -e + + echo "=== [DEV] Récupération de l'image ===" + docker login ${{ vars.REGISTRY_URL }} \ + -u ${{ secrets.REGISTRY_USERNAME }} \ + -p ${{ secrets.REGISTRY_PASSWORD }} + + docker pull ${{ vars.REGISTRY_URL }}/webzine/webzine:dev + + echo "=== [DEV] Arrêt de l'ancien conteneur ===" + docker stop webzine-dev 2>/dev/null || true + docker rm webzine-dev 2>/dev/null || true + + echo "=== [DEV] Démarrage du nouveau conteneur ===" + docker run -d \ + --name webzine-dev \ + --restart unless-stopped \ + -p 8080:8080 \ + -v /opt/webzine/dev/data:/app/Data \ + -v /opt/webzine/dev/logs:/Logs \ + -e ASPNETCORE_ENVIRONMENT=Development \ + ${{ vars.REGISTRY_URL }}/webzine/webzine:dev + + echo "=== [DEV] Nettoyage des anciennes images ===" + docker image prune -f + + echo "=== [DEV] Déploiement terminé ===" \ No newline at end of file