Sprint 0 - Setup Initial
Sprint 0 - Setup Initial
Documentation technique
Durée estimée : 1-2 semaines
Objectif : Préparer l’infrastructure, les outils et les processus pour permettre le développement des slices
Statut : À faire
1. Vue d’ensemble
Le Sprint 0 est une phase de préparation dédiée à la mise en place de l’infrastructure, des outils de développement et des processus de travail. Aucun code métier n’est développé pendant ce sprint.
1.1. Objectifs
- ✅ Infrastructure Cloudflare configurée et opérationnelle
- ✅ Projet Sanity créé et accessible
- ✅ Repository Git initialisé avec protections
- ✅ CI/CD configuré et testé
- ✅ Environnements (staging, production) séparés
- ✅ Processus de travail défini et documenté
- ✅ Guides de setup (Day 1) créés
1.2. Livrables1/2
- Infrastructure Cloudflare (Workers, R2, Stream, Pages)
- Projet Sanity avec credentials
- Repository Git avec branches et protections
- Pipeline CI/CD fonctionnel
- Configuration Astro initiale
1.2. Livrables2/2
- Configuration Wrangler initiale
- Variables d’environnement définies
- Secrets injectés
- Documentation opérationnelle (runbooks, playbooks)
- Guide Day 1 pour les nouveaux développeurs
2. Infrastructure Cloudflare
2.1. Comptes et sous-domaines
| Ressource | Action | Détails |
|---|---|---|
| Compte Cloudflare | Créer | Compte principal avec facturation |
| Sous-domaine Workers | Configurer | workers.votresite.com |
| Sous-domaine Pages | Configurer | staging.votresite.com, www.votresite.com |
| R2 Buckets | Créer | medias-r2, backups-r2 |
| Stream | Activer | Bibliothèque vidéo créée |
| Turnstile | Activer | Site key et secret key |
2.2. Wrangler CLI
# Installationnpm install -g wrangler
# Authentificationwrangler login
# Vérificationwrangler whoami2.3. Création des ressources
# Buckets R2wrangler r2 bucket create medias-r2 --env productionwrangler r2 bucket create medias-r2 --env stagingwrangler r2 bucket create backups-r2 --env productionwrangler r2 bucket create backups-r2 --env staging
# Queuewrangler queues create submissions-queue --env productionwrangler queues create submissions-queue --env staging
# KV namespacewrangler kv:namespace create WEBHOOK_LOCK --env productionwrangler kv:namespace create WEBHOOK_LOCK --env staging3. Projet Sanity
3.1. Création du projet
# Installation CLInpm install -g @sanity/cli
# Création du projetsanity init
# Configuration- Nom du projet : [votre-projet]- Dataset : production, staging- Role : Administrator3.2. Configuration API
| Variable | Description | Source |
|---|---|---|
SANITY_PROJECT_ID |
ID du projet Sanity | Dashboard Sanity |
SANITY_DATASET |
Dataset (production/staging) | Sanity CLI |
SANITY_API_READ_TOKEN |
Token lecture | API Tokens |
SANITY_API_WRITE_TOKEN |
Token écriture | API Tokens |
SANITY_PREVIEW_SECRET |
Secret preview | Généré aléatoirement |
3.3. Injection des secrets
# Cloudflare Workerswrangler secret put SANITY_PROJECT_ID --env productionwrangler secret put SANITY_DATASET --env productionwrangler secret put SANITY_API_READ_TOKEN --env productionwrangler secret put SANITY_PREVIEW_SECRET --env production
# Astro (via CI/CD ou .env)# Voir §64. Repository Git
4.1. Initialisation
# Création du repositorygit initgit remote add origin git@github.com:votre-org/votre-repo.git
# Branches initialesgit checkout -b maingit checkout -b developgit checkout -b feature/slice-1-page-schema4.2. Branches et protections
| Branche | Protection | Règles |
|---|---|---|
main |
✅ | PR requis, reviews, tests passants |
develop |
✅ | PR requis, reviews, tests passants |
feature/* |
❌ | Aucune protection |
4.3. PR Template
## Description[Bref description de la modification]
## Type de modification- [ ] Bug fix- [ ] New feature- [ ] Breaking change- [ ] Documentation update
## Slice concerné- Slice 1 : Schéma Sanity "page"- Slice 2 : Schéma Sanity "post"- ...
## Checklist- [ ] Code suit les standards du projet- [ ] Tests unitaires ajoutés/mis à jour- [ ] Tests d'intégration ajoutés/mis à jour- [ ] Documentation mise à jour (fiches d'objets)- [ ] ADR créée si nécessaire- [ ] CI/CD passe
## Screenshots (si applicable)[Ajouter screenshots]5. CI/CD
5.1. Pipeline GitHub Actions1/3
name: CI
on: pull_request: branches: [main, develop]
jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '20' - run: npm ci - run: npm run test - run: npm run lint - run: npm run typecheck5.1. Pipeline GitHub Actions2/3
name: Deploy Staging
on: push: branches: [develop]
jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '20' - run: npm ci - run: npm run build - run: npx wrangler pages deploy dist --project-name=votre-projet-staging5.1. Pipeline GitHub Actions3/3
name: Deploy Production
on: push: branches: [main]
jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '20' - run: npm ci - run: npm run build - run: npx wrangler pages deploy dist --project-name=votre-projet-production5.2. Secrets CI/CD
| Secret | Description |
|---|---|
CLOUDFLARE_ACCOUNT_ID |
ID du compte Cloudflare |
CLOUDFLARE_API_TOKEN |
Token API Cloudflare |
SANITY_PROJECT_ID |
ID du projet Sanity |
SANITY_API_READ_TOKEN |
Token lecture Sanity |
SANITY_API_WRITE_TOKEN |
Token écriture Sanity |
6. Configuration Astro initiale
6.1. Initialisation du projet
# Création du projetnpm create astro@latest
# Installation des dépendancesnpm install @astrojs/cloudflare @astrojs/sanity @astrojs/starlight tailwindcssnpm install -D @sanity/image-url sanity-typegen6.2. Configuration astro.config.mjs
import { defineConfig } from 'astro/config';import cloudflare from '@astrojs/cloudflare';import sanity from '@astrojs/sanity';import starlight from '@astrojs/starlight';import tailwind from '@astrojs/tailwind';
export default defineConfig({ output: 'hybrid', adapter: cloudflare(), integrations: [ sanity({ projectId: import.meta.env.SANITY_PROJECT_ID, dataset: import.meta.env.SANITY_DATASET, }), starlight({ title: 'Documentation', sidebar: [], }), tailwind(), ],});6.3. Variables d’environnement
SANITY_PROJECT_ID=your-project-idSANITY_DATASET=productionSANITY_API_READ_TOKEN=your-read-tokenSANITY_API_WRITE_TOKEN=your-write-tokenSANITY_PREVIEW_SECRET=your-preview-secret
CLOUDFLARE_ACCOUNT_ID=your-account-id7. Configuration Wrangler initiale
7.1. Configuration wrangler.toml
name = "votre-projet"main = "src/entrypoint"compatibility_date = "2026-09-01"
[env.production]vars = { ENVIRONMENT = "production" }
[env.staging]vars = { ENVIRONMENT = "staging" }7.2. Injection des secrets
# Productionwrangler secret put SANITY_PROJECT_ID --env productionwrangler secret put SANITY_DATASET --env productionwrangler secret put SANITY_API_READ_TOKEN --env productionwrangler secret put SANITY_PREVIEW_SECRET --env production
# Stagingwrangler secret put SANITY_PROJECT_ID --env stagingwrangler secret put SANITY_DATASET --env stagingwrangler secret put SANITY_API_READ_TOKEN --env stagingwrangler secret put SANITY_PREVIEW_SECRET --env staging8. Processus de travail
8.1. Workflow Git1/2
main (production) ↑ develop (staging) ↑ feature/slice-X (développement)Règles :
8.1. Workflow Git2/2
- Créer une branche
feature/slice-Xdepuisdevelop - Développer la slice complète (DOC → SPEC → CODE → TEST → INTÉG)
- Créer une PR vers
develop - Review et tests
- Merge dans
develop→ déploiement staging - Validation sur staging
- PR de
developversmain - Review et tests
- Merge dans
main→ déploiement production
8.2. Processus de review1/2
Code review :
- Code suit les standards du projet
- Tests unitaires ajoutés/mis à jour
- Tests d’intégration ajoutés/mis à jour
- Pas de secrets exposés
- Performance acceptable
8.2. Processus de review2/2
Documentation review :
- Fiches d’objets créés/mis à jour
- ADR créée si nécessaire
- DAT mis à jour si nécessaire
- Docs tree mis à jour
8.3. Processus de déploiement
- Staging : Automatique sur merge dans
develop - Production : Automatique sur merge dans
mainavec approbation manuelle
9. Outils d’équipe
9.1. Communication
| Outil | Usage | Canaux |
|---|---|---|
| Slack / Discord | Communication quotidienne | #general, #dev, #alerts |
| Communications officielles | - |
9.2. Gestion de projet
| Outil | Usage | Structure |
|---|---|---|
| Jira / Linear | Tracking des slices | Epic = Slice, Issue = Tâche |
| GitHub Projects | Tracking des PRs | Kanban par slice |
9.3. Documentation
| Outil | Usage | Emplacement |
|---|---|---|
| Git (Markdown) | Documentation technique | Repository |
| Confluence / Notion | Documentation équipe | Externe |
10. Guides de setup
10.1. Guide Day 1 (nouveau développeur)
# Guide Day 1 - Setup Local
## Prérequis- Node.js 20+- Git- VS Code- Wrangler CLI- Sanity CLI
## Étapes
1. Cloner le repository2. Installer les dépendances3. Configurer les variables d'environnement4. Lancer le serveur de développement5. Suivre le guide de contribution10.2. Guide Sprint 0 (équipe)
# Guide Sprint 0 - Setup Initial
## Objectifs- Infrastructure configurée- Processus défini- Équipe onboardée
## Checklist- [ ] Infrastructure Cloudflare- [ ] Projet Sanity- [ ] Repository Git- [ ] CI/CD- [ ] Configuration Astro- [ ] Configuration Wrangler- [ ] Processus de travail- [ ] Guides de setup11. Monitoring et alerting
11.1. Logs
- Cloudflare Workers :
wrangler tail - Astro : Logs de build
- Sanity : Dashboard logs
11.2. Alerting
| Type | Outil | Condition |
|---|---|---|
| CI/CD échoue | GitHub Actions | Pipeline échoué |
| Déploiement échoue | Cloudflare | Erreur de déploiement |
| Sanity webhook échoue | Sanity | Webhook échoué |
| Worker échoue | Cloudflare | Erreur 5xx |
12. Checklist de validation1/2
Avant de commencer Slice 1, vérifier :
- Infrastructure Cloudflare opérationnelle
- Projet Sanity accessible
- Repository Git avec protections
- CI/CD fonctionnel
- Environnements séparés
- Configuration Astro initiale
12. Checklist de validation2/2
- Configuration Wrangler initiale
- Variables d’environnement définies
- Secrets injectés
- Processus de travail défini
- Guides de setup créés
- Équipe formée
13. Ressources
- Documentation Cloudflare : https://developers.cloudflare.com/
- Documentation Sanity : https://www.sanity.io/docs
- Documentation Astro : https://docs.astro.build/
- GitHub Actions : https://docs.github.com/en/actions
14. Historique des modifications
| Date | Version | Description | Auteur |
|---|---|---|---|
| YYYY-MM-DD | 1.0 | Création initiale | [Nom] |