Ответ
Я использовал Bitbucket Server (Data Center) и Bitbucket Cloud как центральные инструменты для контроля версий, код-ревью и как триггер для CI/CD-процессов.
Основные направления работы:
- Управление репозиториями и процессами: Организовывал структуру репозиториев, внедрял и поддерживал стратегии ветвления (чаще GitFlow или Trunk-Based Development). Настраивал обязательные Pull Request (PR) с требованиями к количеству аппруверов и успешному прохождению проверок в CI.
- Bitbucket Pipelines: Писал и поддерживал пайплайны для сборки, тестирования и деплоя приложений. Интегрировал этапы безопасности (SAST-сканирование с Snyk или Checkmarx).
- Интеграции: Настраивал глубокую интеграцию с Jira (автоматическое связывание коммитов и PR с задачами), Slack для уведомлений и вебхуки для запуска задач в внешних системах (Jenkins, собственные скрипты).
Пример .bitbucket-pipelines.yml для деплоя в Kubernetes:
image: atlassian/default-image:3
pipelines:
branches:
main:
- step:
name: Build, Test & Push Image
services:
- docker
script:
- docker build -t $DOCKER_REGISTRY/myapp:$BITBUCKET_COMMIT .
- docker push $DOCKER_REGISTRY/myapp:$BITBUCKET_COMMIT
- step:
name: Deploy to Production
deployment: production
script:
- echo $KUBECONFIG_B64 | base64 -d > ./kubeconfig
- export KUBECONFIG=./kubeconfig
- sed -i "s|IMAGE_TAG|$BITBUCKET_COMMIT|g" k8s/deployment.yaml
- kubectl apply -f k8s/
Почему это важно: Bitbucket служит единой точкой истины для кода, обеспечивая контроль качества через PR и автоматизируя весь путь кода от разработчика до production через встроенные пайплайны.