Actualiser .woodpecker/pipeline.yml
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user