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] |