Sprint 0 - Setup Initial
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
Section titled “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
Section titled “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. Livrables
Section titled “1.2. Livrables”- Infrastructure Cloudflare (Workers, R2, Stream, Pages)
- Projet Sanity avec credentials
- Repository Git avec branches et protections
- Pipeline CI/CD fonctionnel
- Configuration Astro initiale
- 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
Section titled “2. Infrastructure Cloudflare”2.1. Comptes et sous-domaines
Section titled “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
Section titled “2.2. Wrangler CLI”# Installationnpm install -g wrangler
# Authentificationwrangler login
# Vérificationwrangler whoami2.3. Création des ressources
Section titled “2.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
Section titled “3. Projet Sanity”3.1. Création du projet
Section titled “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
Section titled “3.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
Section titled “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
Section titled “4. Repository Git”4.1. Initialisation
Section titled “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
Section titled “4.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
Section titled “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
Section titled “5. CI/CD”5.1. Pipeline GitHub Actions
Section titled “5.1. Pipeline GitHub Actions”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 typecheckname: 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-stagingname: 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
Section titled “5.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
Section titled “6. Configuration Astro initiale”6.1. Initialisation du projet
Section titled “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
Section titled “6.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
Section titled “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
Section titled “7. Configuration Wrangler initiale”7.1. Configuration wrangler.toml
Section titled “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
Section titled “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
Section titled “8. Processus de travail”8.1. Workflow Git
Section titled “8.1. Workflow Git”main (production) ↑ develop (staging) ↑ feature/slice-X (développement)Règles :
- 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 review
Section titled “8.2. Processus de review”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
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
Section titled “8.3. Processus de déploiement”- Staging : Automatique sur merge dans
develop - Production : Automatique sur merge dans
mainavec approbation manuelle
9. Outils d’équipe
Section titled “9. Outils d’équipe”9.1. Communication
Section titled “9.1. Communication”| Outil | Usage | Canaux |
|---|---|---|
| Slack / Discord | Communication quotidienne | #general, #dev, #alerts |
| Communications officielles | - |
9.2. Gestion de projet
Section titled “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
Section titled “9.3. Documentation”| Outil | Usage | Emplacement |
|---|---|---|
| Git (Markdown) | Documentation technique | Repository |
| Confluence / Notion | Documentation équipe | Externe |
10. Guides de setup
Section titled “10. Guides de setup”10.1. Guide Day 1 (nouveau développeur)
Section titled “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)
Section titled “10.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
Section titled “11. Monitoring et alerting”11.1. Logs
Section titled “11.1. Logs”- Cloudflare Workers :
wrangler tail - Astro : Logs de build
- Sanity : Dashboard logs
11.2. Alerting
Section titled “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 validation
Section titled “12. Checklist de validation”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
- 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
Section titled “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
Section titled “14. Historique des modifications”| Date | Version | Description | Auteur |
|---|---|---|---|
| YYYY-MM-DD | 1.0 | Création initiale | [Nom] |