Skip to content

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

Terminal window
# Installation
npm install -g wrangler
# Authentification
wrangler login
# Vérification
wrangler whoami

2.3. Création des ressources

Terminal window
# Buckets R2
wrangler r2 bucket create medias-r2 --env production
wrangler r2 bucket create medias-r2 --env staging
wrangler r2 bucket create backups-r2 --env production
wrangler r2 bucket create backups-r2 --env staging
# Queue
wrangler queues create submissions-queue --env production
wrangler queues create submissions-queue --env staging
# KV namespace
wrangler kv:namespace create WEBHOOK_LOCK --env production
wrangler kv:namespace create WEBHOOK_LOCK --env staging

3. Projet Sanity

3.1. Création du projet

Terminal window
# Installation CLI
npm install -g @sanity/cli
# Création du projet
sanity init
# Configuration
- Nom du projet : [votre-projet]
- Dataset : production, staging
- Role : Administrator

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

Terminal window
# Cloudflare Workers
wrangler secret put SANITY_PROJECT_ID --env production
wrangler secret put SANITY_DATASET --env production
wrangler secret put SANITY_API_READ_TOKEN --env production
wrangler secret put SANITY_PREVIEW_SECRET --env production
# Astro (via CI/CD ou .env)
# Voir §6

4. Repository Git

4.1. Initialisation

Terminal window
# Création du repository
git init
git remote add origin git@github.com:votre-org/votre-repo.git
# Branches initiales
git checkout -b main
git checkout -b develop
git checkout -b feature/slice-1-page-schema

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

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

.github/workflows/ci.yml
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 typecheck

5.1. Pipeline GitHub Actions2/3

.github/workflows/deploy-staging.yml
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-staging

5.1. Pipeline GitHub Actions3/3

.github/workflows/deploy-production.yml
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-production

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

6.1. Initialisation du projet

Terminal window
# Création du projet
npm create astro@latest
# Installation des dépendances
npm install @astrojs/cloudflare @astrojs/sanity @astrojs/starlight tailwindcss
npm install -D @sanity/image-url sanity-typegen

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

.env.example
SANITY_PROJECT_ID=your-project-id
SANITY_DATASET=production
SANITY_API_READ_TOKEN=your-read-token
SANITY_API_WRITE_TOKEN=your-write-token
SANITY_PREVIEW_SECRET=your-preview-secret
CLOUDFLARE_ACCOUNT_ID=your-account-id

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

Terminal window
# Production
wrangler secret put SANITY_PROJECT_ID --env production
wrangler secret put SANITY_DATASET --env production
wrangler secret put SANITY_API_READ_TOKEN --env production
wrangler secret put SANITY_PREVIEW_SECRET --env production
# Staging
wrangler secret put SANITY_PROJECT_ID --env staging
wrangler secret put SANITY_DATASET --env staging
wrangler secret put SANITY_API_READ_TOKEN --env staging
wrangler secret put SANITY_PREVIEW_SECRET --env staging

8. Processus de travail

8.1. Workflow Git1/2

main (production)
↑
develop (staging)
↑
feature/slice-X (développement)

Règles :

8.1. Workflow Git2/2

  1. Créer une branche feature/slice-X depuis develop
  2. Développer la slice complète (DOC → SPEC → CODE → TEST → INTÉG)
  3. Créer une PR vers develop
  4. Review et tests
  5. Merge dans develop → déploiement staging
  6. Validation sur staging
  7. PR de develop vers main
  8. Review et tests
  9. 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

  1. Staging : Automatique sur merge dans develop
  2. Production : Automatique sur merge dans main avec approbation manuelle

9. Outils d’équipe

9.1. Communication

Outil Usage Canaux
Slack / Discord Communication quotidienne #general, #dev, #alerts
Email 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 repository
2. Installer les dépendances
3. Configurer les variables d'environnement
4. Lancer le serveur de développement
5. Suivre le guide de contribution

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 setup

11. 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

14. Historique des modifications

Date Version Description Auteur
YYYY-MM-DD 1.0 Création initiale [Nom]
Switch to normal mode

Contents