Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

đŸ§© Bitbucket Pipelines — CI/CD Atlassian

Bitbucket Pipelines exĂ©cute des pipelines dĂ©crits en YAML via bitbucket-pipelines.yml : pipelines → steps (scripts), images Docker, caches/artifacts, variables & secrets, intĂ©grations via Pipes et exĂ©cution possible sur Runners self-hosted. :contentReference[oaicite:1]{index=1}

1.1

Vue d’ensemble

DĂ©finition, composants, modĂšle mental “step-based”, oĂč ça brille (Atlassian stacks).

CI/CDAtlassianYAML
1.2

Architecture & concepts

pipelines/default/branches/PR/custom, steps, services, artifacts, caches, images.

StepsServicesArtifacts
1.3

bitbucket-pipelines.yml

Structure, step options, services, caches, artifacts, déploiements, anchors YAML.

ReferenceStep optionsAnchors
2.1

Triggers & stratégies

default vs branches vs pull-requests vs custom; fast vs full, nightly, release tags.

PRBranchesCustom
2.2

Caches & Artifacts

AccĂ©lĂ©ration et “handoff” : caches (deps) vs artifacts (outputs), glob paths, download.

CacheArtifactsSpeed
2.3

Pipes

IntĂ©grations rĂ©utilisables (3rd party tools), “pipe” comme bloc d’automatisation.

IntegrationsDRY3rd-party
3.1

Runners self-hosted

ExĂ©cution sur ton infra (workspace/repo runners), routing, paritĂ© ressources, cas d’usage.

Self-hostedOn-premVPC

Sécurité & secrets

Variables sécurisées masquées, SSH keys, pratiques recommandées, gestion des niveaux.

SecretsMaskingHardening

Déploiements

Deployment steps, environnements (staging/prod), variables de déploiement, gates.

DeployEnvironmentsGates
4.2

Bonnes pratiques

Templates, anchors, fast feedback, build once deploy many, observabilité, supply chain.

Best practicesDRYReliability
5.1

Migration (Jenkins/Bamboo/GHA)

Mapping vers Pipelines, stratégie progressive, piÚges, checklist (runners, secrets, caches).

MigrationChecklistOps
5.2

Liens & docs

Docs officielles Atlassian : reference YAML, step options, secrets, runners, pipes.

DocsReferenceOfficial
6.0

Cheat-sheet

RĂ©sumĂ© opĂ©rationnel + phrase “CV-ready” (trĂšs recruteur-friendly).

TL;DRCVOps
1.1 Bitbucket Pipelines — dĂ©finition, composants, positionnement
Bitbucket Pipelines en 30 secondes

Pipelines est le moteur CI/CD de Bitbucket Cloud. Le pipeline est défini dans un fichier YAML (bitbucket-pipelines.yml) et est composé de steps exécutant des scripts (souvent dans des conteneurs Docker). La référence de configuration est fournie par Atlassian. :contentReference[oaicite:2]{index=2}

Angle enterprise : runners self-hosted, secrets masquĂ©s, et intĂ©grations “Pipes” (blocs rĂ©utilisables). :contentReference[oaicite:3]{index=3}
Catégorisation IDEO-Lab
DevOps CI/CD Pipelines as code Security
Diagramme “push → step → deploy”
Commit / PR
  └─ pipelines:
        default:
          - step: build/test
          - step: package (artifacts)
          - step: deploy staging (deployment env)
          - step: deploy prod (gate/approval cÎté process)
            
Point clé : la granularité est centrée sur le step + ses options (cache/artifacts/services). :contentReference[oaicite:4]{index=4}
Pipeline type : fast PR + full main + deploy
pipelines:
  pull-requests:
    "**":
      - step: { name: "Lint+Unit", script: ["ruff check .", "pytest -q"] }

  branches:
    main:
      - step: { name: "Build", script: ["python -m build"], artifacts: ["dist/**"] }
      - step:
          name: "Deploy Staging"
          deployment: staging
          script: ["./deploy.sh staging"]
      - step:
          name: "Deploy Prod"
          deployment: production
          script: ["./deploy.sh production"]
        
Référence : options de step / artifacts / deploy sont détaillées dans la doc Atlassian. :contentReference[oaicite:5]{index=5}
✅ Trùs pertinent si

  • Ton SCM est Bitbucket Cloud et tu veux une intĂ©gration native “repo → CI/CD”.
  • Tu veux des intĂ©grations rapides via Pipes. :contentReference[oaicite:6]{index=6}
  • Tu as besoin d’exĂ©cution sur ton infra via Runners. :contentReference[oaicite:7]{index=7}
⚠ Points d’attention
  • Self-hosted runners = Ops + hardening + monitoring (surface d’attaque).
  • HygiĂšne YAML : anchors, factorisation, Ă©vite duplication et drift.
  • Gestion stricte des variables/secrets (scopes + masking). :contentReference[oaicite:8]{index=8}
ÉcosystĂšme Atlassian (oĂč Pipelines s’aligne bien)
  • Bitbucket + Jira : traçabilitĂ© tickets ↔ commits ↔ builds (dans les pratiques d’équipe).
  • Standardisation : conventions pipeline par repo/workspace (templates internes).
  • Gouvernance : secrets masquĂ©s + runners isolĂ©s + “deployment variables”. :contentReference[oaicite:9]{index=9}
1.2 Architecture — pipelines, steps, services, images, anchors YAML
ModĂšle mental
bitbucket-pipelines.yml
  pipelines:
    default / branches / pull-requests / custom
      - step:
          image: ...
          caches: ...
          services: ...
          script: [...]
          artifacts: [...]
        
RĂ©fĂ©rence : la configuration complĂšte est documentĂ©e dans “configuration reference”. :contentReference[oaicite:10]{index=10}
Types de pipelines (pattern d’équipe)
TypeButQuand
defaultCI basiquepush général
pull-requestsfast feedbackPR checks
branchesrelease / deploymain / release/*
customrun ad-hocops / migration / backfill
Services (DB / Redis / etc.) — concept

Les services permettent de démarrer des conteneurs auxiliaires (ex : Postgres) accessibles depuis le step. Voir la configuration reference pour les options exactes. :contentReference[oaicite:11]{index=11}

definitions:
  services:
    postgres:
      image: postgres:16
      variables:
        POSTGRES_PASSWORD: "postgres"
        
Anchors YAML = DRY simple
# Exemple concept
definitions:
  steps:
    - step: &lint_test
        name: "Lint+Unit"
        image: python:3.12
        script:
          - pip install -r requirements.txt
          - ruff check .
          - pytest -q

pipelines:
  pull-requests:
    "**":
      - step: *lint_test
        
ROI : moins de duplication YAML, moins de drift.
1.3 bitbucket-pipelines.yml — rĂ©fĂ©rence, step options, exemple Django
Structure minimale

La référence officielle décrit la structure, options globales et comportements. :contentReference[oaicite:12]{index=12}

image: atlassian/default-image:4

pipelines:
  default:
    - step:
        name: "Build"
        script:
          - echo "Hello Pipelines"
        
Step options (caches / artifacts / etc.)

Atlassian documente les options de step, dont la gestion des artifacts (paths, download) et les patterns glob. :contentReference[oaicite:13]{index=13}

- step:
    name: "Package"
    script:
      - python -m build
    artifacts:
      - "dist/**"
        
Important : les artifacts servent à partager des outputs entre steps (build → deploy). :contentReference[oaicite:14]{index=14}
Exemple Django (lint + tests + report)
image: python:3.12

pipelines:
  pull-requests:
    "**":
      - step:
          name: "Lint + Unit"
          caches:
            - pip
          script:
            - pip install -U pip
            - pip install -r requirements.txt
            - ruff check .
            - pytest -q --maxfail=1
  branches:
    main:
      - step:
          name: "Build"
          caches:
            - pip
          script:
            - pip install -U pip
            - pip install -r requirements.txt
            - python -m build
          artifacts:
            - "dist/**"
        
Pattern : PR = fast, main = build “release-ready” (artifacts immuables).
Déploiement (deployment env)

La doc référence couvre les options associées aux déploiements, et Atlassian explique aussi les variables/secrets et leur portée (repository/deployment). :contentReference[oaicite:15]{index=15}

pipelines:
  branches:
    main:
      - step:
          name: "Deploy Staging"
          deployment: staging
          script:
            - ./deploy.sh staging
      - step:
          name: "Deploy Prod"
          deployment: production
          script:
            - ./deploy.sh production
        
2.1 Triggers & stratĂ©gies — fast PR, full main, nightly, custom
StratĂ©gie “pro” (simple et efficace)
CanalObjectifContenuDurée cible
PRfast feedbacklint + unit + smoke3–8 min
mainrelease-readybuild + packaging + artifacts5–12 min
nightlyqualitéintegration + e2e + security scanvariable
customopsmigration/backfillĂ  la demande
RĂšgle : “fast PR” rĂ©duit le coĂ»t total et augmente la vĂ©locitĂ© (moins d’attente en review).
2.2 Caches & Artifacts — accĂ©lĂ©ration + handoff build→deploy
Cache vs artifacts : ne pas confondre
MécanismeButExemplesPiÚge
Cachesaccélérerdeps pip/npmcache trop large
Artifactshandoff outputsdist/**, reportsartifacts “sales” / trop volumineux
Artifacts (partage entre steps)

Atlassian dĂ©taille l’option artifacts et les “artifact paths” via les step options. :contentReference[oaicite:16]{index=16}

- step:
    name: "Build"
    script:
      - make build
    artifacts:
      - "dist/**"
      - "reports/**"
        
3 quick wins
  • Cache deps + lockfiles (pip/poetry/npm) → baisse drastique du temps.
  • Artifacts = uniquement l’output utile pour deploy (pas tout le workspace).
  • Conserver reports tests → debug “instant”.
2.3 Pipes — intĂ©grations rĂ©utilisables (3rd party tools)
Pipes = “bloc d’automatisation” prĂȘt Ă  l’emploi

Atlassian décrit les pipes comme un moyen simple de configurer des intégrations, notamment avec des outils tiers. :contentReference[oaicite:17]{index=17}

ROI : pipeline plus court + moins de scripts maison + adoption rapide par l’équipe.
Exemple (concept) : utilisation d’un pipe
- step:
    name: "Deploy via Pipe"
    script:
      - pipe: atlassian/some-pipe:1.2.3
        variables:
          VAR1: $VAR1
          VAR2: $VAR2
        
RĂ©fĂ©rence : “Use pipes in Bitbucket Pipelines” (docs Atlassian). :contentReference[oaicite:18]{index=18}
Gouvernance supply chain (pratique)
  • Éviter pipes inconnus non maintenus (risque supply chain).
  • Pin version + review de la config (comme une dĂ©pendance code).
  • Limiter secrets exposĂ©s aux pipes (scope minimal).
3.1 Runners self-hosted — exĂ©cution sur ton infra (workspace/repo)
Pourquoi des runners ?

Atlassian indique que les runners permettent d’exĂ©cuter Pipelines sur ta propre infrastructure et prĂ©cise que tu ne seras pas facturĂ© des minutes de build utilisĂ©es par tes self-hosted runners. :contentReference[oaicite:19]{index=19}

  • AccĂšs rĂ©seau privĂ© (DB interne, registry privĂ©, VPC).
  • Toolchains spĂ©cifiques (compliance, hardware, licences).
  • ContrĂŽle OS + monitoring (entreprise).
Configurer un runner dans le YAML

Atlassian décrit comment cibler un runner dans bitbucket-pipelines.yml et mentionne aussi la parité de ressources / version runner. :contentReference[oaicite:20]{index=20}

# Exemple concept (les champs exacts dépendent de ta config runner)
- step:
    name: "Build on Runner"
    runs-on:
      - "self.hosted"
      - "linux"
      - "prod-runner"
    script:
      - ./build.sh
        
Notes importantes
  • Runners peuvent ĂȘtre ajoutĂ©s au niveau repo ou workspace (jusqu’à 100 selon la doc). :contentReference[oaicite:21]{index=21}
  • Hardening obligatoire (rĂ©seau, patching, rotation).
  • Éviter un runner “fourre-tout” partagĂ© Ă  la prod : isoler par labels/pool.
SĂ©curitĂ© — variables & secrets, masking, SSH keys, pratiques recommandĂ©es
Variables & secrets (Pipelines)

Atlassian dĂ©crit les variables (dont “secured variables”) et leur utilisation dans Pipelines. :contentReference[oaicite:22]{index=22}

Principe:
- variables repo/workspace/deployment
- marquer les valeurs sensibles en "secured"
- injecter via env dans les steps
        
Masking des variables sécurisées

Pipelines masque les variables sécurisées dans les logs : si une valeur apparaßt, elle est remplacée par $VARIABLE_NAME. :contentReference[oaicite:23]{index=23}

Attention : ce masking peut faire croire “ça ne marche pas” — c’est normal, la valeur est volontairement cachĂ©e.
Pratiques recommandées (Atlassian)

Atlassian publie un article de bonnes pratiques sur la gestion des secrets : variables sĂ©curisĂ©es, SSH keys, pratiques d’artifacts, etc. :contentReference[oaicite:24]{index=24}

  • Secrets uniquement au niveau nĂ©cessaire (least privilege).
  • Rotation pĂ©riodique + audit des usages.
  • Éviter de faire passer des secrets via artifacts (risque de fuite).
Scopes & precedence (utile en prod)

Atlassian détaille la notion de variables de dépÎt et de déploiement et leur priorité (important pour éviter collisions). :contentReference[oaicite:25]{index=25}

Pattern recommandé:
- repo variables: CI non-sensibles + defaults
- deployment variables: secrets/env spécifiques (staging/prod)
- noms clairs: STAGING_*, PROD_*
        
DĂ©ploiements — deployment steps, environnements, variables de dĂ©ploiement
Pattern “build once, deploy many”
pipelines:
  branches:
    main:
      - step:
          name: Build
          script: ["make build"]
          artifacts: ["dist/**"]
      - step:
          name: Deploy staging
          deployment: staging
          script: ["./deploy.sh staging"]
      - step:
          name: Deploy prod
          deployment: production
          script: ["./deploy.sh production"]
        
Référence : artifacts/step options et configuration reference. :contentReference[oaicite:26]{index=26}
Variables de déploiement (staging/prod)

Atlassian distingue les variables de repository et de deployment (et leur priorité). :contentReference[oaicite:27]{index=27}

Ex:
- deployment: staging
  uses variables: STAGING_DB_URL, STAGING_TOKEN (secured)

- deployment: production
  uses variables: PROD_DB_URL, PROD_TOKEN (secured)
        
Gates (processus)
  • Gate “humain” (ex : validation release) : process interne + protection des secrets prod.
  • Runner prod dĂ©diĂ© + isolation rĂ©seau.
  • Secrets prod uniquement dans “deployment variables” (pas repo variables).
Bonnes pratiques — DRY, perf, fiabilitĂ©, supply chain
Top 10 (pro)
  1. PR = fast pipeline ; main = build + artifacts + deploy.
  2. Artifacts pour build outputs (pas le repo complet). :contentReference[oaicite:28]{index=28}
  3. Caches pour deps (pip/npm), key “stable” (lockfiles).
  4. Factoriser via YAML anchors (DRY).
  5. Utiliser Pipes pour intégrations standard (moins de scripts). :contentReference[oaicite:29]{index=29}
  6. Secrets uniquement “secured variables” (masked). :contentReference[oaicite:30]{index=30}
  7. Deployment variables pour prod/stage + gouvernance. :contentReference[oaicite:31]{index=31}
  8. Runners dédiés prod (isolation). :contentReference[oaicite:32]{index=32}
  9. Observabilité : reports tests comme artifacts, logs propres.
  10. Revue du YAML comme du code (PR obligatoire).
Security baseline
  • Appliquer les recommandations Atlassian pour secrets/SSH keys/artifacts. :contentReference[oaicite:33]{index=33}
  • Ne jamais exposer secrets via logs (mĂȘme si masquĂ©s, Ă©viter d’imprimer).
  • Runner hardening + segmentation rĂ©seau.
Phrase CV-ready
Industrialisation CI/CD sur Bitbucket Pipelines : pipelines as code (bitbucket-pipelines.yml),
stratĂ©gie PR “fast” + main “release-ready”, optimisation via caches + artifacts (handoff build→deploy),
intĂ©grations standardisĂ©es via Pipes, sĂ©curisation par variables “secured” masquĂ©es et variables de dĂ©ploiement,
et exécution hybride cloud + runners self-hosted isolés (VPC/on-prem) pour déploiements sensibles.
        
Migration vers Bitbucket Pipelines — mapping & checklist
Mapping conceptuel
ConceptJenkins/BambooBitbucket PipelinesNotes
Pipeline as codeJenkinsfile / Planbitbucket-pipelines.ymlconfig reference :contentReference[oaicite:34]{index=34}
Agentsagentscloud runners / self-hosted runnersrunners :contentReference[oaicite:35]{index=35}
Shared libsshared libsPipes + anchors YAMLpipes docs :contentReference[oaicite:36]{index=36}
Secretscredentials storesecured variables (masked) + deployment varssecrets/precedence :contentReference[oaicite:37]{index=37}
Artifactsarchive artifactsartifacts step optionstep options :contentReference[oaicite:38]{index=38}
Stratégie progressive (safe)
  1. Pilote sur 1–2 repos (non critiques).
  2. Reproduire la CI “fonctionnelle” avant d’optimiser.
  3. Installer les conventions YAML (anchors, naming, structure).
  4. Définir la politique secrets (repo vs deployment vars, secured).
  5. Si besoin : déployer runners self-hosted (pool staging/prod). :contentReference[oaicite:39]{index=39}
PiÚges fréquents
  • Artifacts trop gros / mal ciblĂ©s → pipelines lents. :contentReference[oaicite:40]{index=40}
  • Variables “secured” imprimĂ©es dans logs → masquĂ©es (confusion) et risque. :contentReference[oaicite:41]{index=41}
  • Runner prod partagĂ© avec repos non-prod → surface d’attaque.
  • Pipes non contrĂŽlĂ©s (supply chain) → pinning + review.
Checklist
ItemOK ?Notes
Structure YAML standard (anchors + naming)⬜
PR fast pipeline + main release pipeline⬜
Caches deps + artifacts build outputs⬜
Secrets: secured variables + scopes corrects⬜
Deployment vars staging/prod + governance⬜
Runners: pools isolĂ©s + hardening⬜
Pipes: pin versions + approved list⬜
Cheat-sheet Bitbucket Pipelines (TL;DR + CV-ready)
TL;DR
Bitbucket Pipelines = CI/CD Atlassian basé sur YAML (bitbucket-pipelines.yml) :contentReference[oaicite:43]{index=43}
- pipelines (default/branches/PR/custom) → steps
- step options: artifacts/caches/... :contentReference[oaicite:44]{index=44}
- secrets: secured variables masquées dans les logs :contentReference[oaicite:45]{index=45}
- Pipes = intégrations réutilisables :contentReference[oaicite:46]{index=46}
- Runners self-hosted sur ton infra (pas facturé en minutes de build) :contentReference[oaicite:47]{index=47}
      
Phrase “CV-ready”
Industrialisation CI/CD sur Bitbucket Pipelines : pipelines as code (YAML), stratĂ©gie PR fast + main release-ready, optimisation via caches/artifacts (handoff build→deploy), intĂ©grations via Pipes, sĂ©curisation par variables “secured” masquĂ©es et variables de dĂ©ploiement, et exĂ©cution hybride cloud + runners self-hosted isolĂ©s (VPC/on-prem) pour dĂ©ploiements sensibles.