diff --git a/.woodpecker/pipeline.yml b/.woodpecker/pipeline.yml index e9b56d6..1556ea5 100644 --- a/.woodpecker/pipeline.yml +++ b/.woodpecker/pipeline.yml @@ -1,29 +1,34 @@ kind: pipeline -name: deploy-to-k3s +name: full-devops-stack steps: - # Étape 1 : Les tests (Node.js est automatiquement inclus dans l'image choisie) - test: - image: node:18-alpine - commands: - - node -v - - npm install - - echo "Tests réussis !" + # Étape 1 : Build & Push l'image vers le registre Gitea + build-and-publish: + image: banzaicloud/kaniko-plugin + settings: + registry: gitea.213.165.95.242.sslip.io + repo: gitea_admin/hello-world + tags: latest,${CI_COMMIT_SHA:0:7} + username: + from_secret: registry_user + password: + from_secret: registry_password + # Pour autoriser le registre HTTP/auto-signé + extra_args: --insecure --skip-tls-verify - # Étape 2 : Le déploiement (Utilise une image avec kubectl déjà prêt) - deploy: + # Étape 2 : Déploiement sur K3s + deploy-to-k3s: image: bitnami/kubectl:latest environment: - # On passe le Kubeconfig via un secret Woodpecker (à créer dans l'UI) - KUBECONFIG_DATA: + KUBE_CONFIG: from_secret: k3s_kubeconfig commands: - mkdir -p ~/.kube - - echo "$KUBECONFIG_DATA" > ~/.kube/config - - kubectl apply -f deployment.yaml -n devops-tools - - kubectl rollout status deployment/hello-k3s -n devops-tools + - echo "$KUBE_CONFIG" > ~/.kube/config + # On force la mise à jour de l'image avec le tag du commit actuel + - kubectl set image deployment/hello-k3s node-app=gitea.213.165.95.242.sslip.io/gitea_admin/hello-world:${CI_COMMIT_SHA:0:7} -n devops-tools --insecure-skip-tls-verify + - kubectl rollout status deployment/hello-k3s -n devops-tools --insecure-skip-tls-verify -# Optionnel : Ne déclencher que sur la branche main when: - branch: main event: push + branch: main