BitbucketCI/CDDevOpsAtlassian

Bitbucket Pipelines : de zéro à la CI/CD en production

9 juillet 2026 · Sphinx-Digital

Bitbucket Pipelines s’active en un clic et ne nécessite aucune infrastructure. Pour une équipe déjà dans l’écosystème Atlassian, c’est la voie la plus rapide vers une CI/CD opérationnelle.

Étape 1 : premier pipeline en 5 minutes

Créez bitbucket-pipelines.yml à la racine du dépôt :

image: python:3.12-slim

pipelines:
  default:
    - step:
        name: Tests
        caches: [pip]
        script:
          - pip install -r requirements.txt
          - pytest tests/ --junitxml=test-results/report.xml
        artifacts: [test-results/**]
        after-script:
          - pipe: atlassian/xunit-test-reporter:0.2.0
            variables:
              REPORT_PATHS: 'test-results/*.xml'

Commitez — le pipeline se déclenche immédiatement.

Étape 2 : build et push Docker

  branches:
    main:
      - step:
          name: Build & Push
          services: [docker]
          caches: [docker]
          script:
            - echo $DOCKER_PASSWORD | docker login $DOCKER_REGISTRY
                -u $DOCKER_USERNAME --password-stdin
            - docker build -t $DOCKER_REGISTRY/myapp:$BITBUCKET_BUILD_NUMBER .
            - docker push $DOCKER_REGISTRY/myapp:$BITBUCKET_BUILD_NUMBER

Les variables $DOCKER_REGISTRY, $DOCKER_USERNAME, $DOCKER_PASSWORD sont définies dans Repository Settings → Pipelines → Repository variables, chiffrées et masquées dans les logs.

Étape 3 : déploiement avec validation humaine

      - step:
          name: Deploy Production
          deployment: production
          trigger: manual        # bouton dans l'interface
          script:
            - pipe: atlassian/ssh-run:0.4.0
              variables:
                SSH_USER: $PROD_USER
                SERVER: $PROD_HOST
                COMMAND: >
                  docker pull $DOCKER_REGISTRY/myapp:$BITBUCKET_BUILD_NUMBER &&
                  docker stop myapp || true &&
                  docker run -d --name myapp -p 8080:8080
                    $DOCKER_REGISTRY/myapp:$BITBUCKET_BUILD_NUMBER

trigger: manual affiche un bouton dans l’interface — le déploiement ne se fait qu’après validation humaine.

Étape 4 : parallélisme et performance

- parallel:
    - step:
        name: Tests unitaires
        script: [pytest tests/unit/]
    - step:
        name: Lint & sécurité
        script: [ruff check ., bandit -r src/]

Intégration Jira : Smart Commits

git commit -m "PROJ-42 #done Fix auth timeout"
# → Ticket Jira PROJ-42 passé en Done + commit lié

Bonnes pratiques

  • Versionner le YAML comme du code, jamais de secrets dedans
  • Utiliser les caches (pip, npm, docker) — différence de temps significative
  • Nommer les déploiements (deployment: staging/production) pour les tableaux de bord

Notre formation Bitbucket couvre Pipelines du premier pipeline au déploiement multi-environnement.