Was sind Bitbucket Pipelines
Continuous integration
- Docker images as build environments
- Konfiguration direkt im Projekt
- Granulare Einstellung der Tasks pro Branch/Tag
Aktivierung
default
image: abogomolov/default:7.0.0
pipelines:
# Pipelines that run automatically on a commit to a branch
default:
- step:
script:
- composer --version
- composer install --prefer-dist --optimize-autoloader --no-interaction
- vendor/bin/phpunit -c phpunit.xml --coverage-text
- vendor/bin/phpcs --standard=vendor/drupal/coder/coder_sniffer/Drupal/ruleset.xml --ignore=vendor/ .
branches
image: abogomolov/default:7.0.0
pipelines:
# Pipelines that run automatically on a commit to a specific branch
branches:
feature/*:
- step:
script:
- composer --version
- composer install --prefer-dist --optimize-autoloader --no-interaction
- vendor/bin/phpcs --standard=vendor/drupal/coder/coder_sniffer/Drupal/ruleset.xml --ignore=vendor/ .
master:
- step:
image: abogomolov/deploy:7.0.0 # Override default image
script:
- echo "Deployment"
custom
image: abogomolov/default:7.0.0
pipelines:
# Pipelines that are triggered manually
custom:
phpunit:
- step:
script:
- composer --version
- composer install --prefer-dist --optimize-autoloader --no-interaction
- vendor/bin/phpunit -c phpunit.xml --coverage-text
phpcs:
- step:
script:
- composer --version
- composer install --prefer-dist --optimize-autoloader --no-interaction
- vendor/bin/phpcs --standard=vendor/drupal/coder/coder_sniffer/Drupal/ruleset.xml --ignore=vendor/ .
Environment variables
Die environment variables werden in den Container gereicht.
Standardvariablen
Private Repos per Composer installieren
SSH-Key generieren
ssh-keygen -t rsa -b 4096 -C "pipelines@bitbucket.com"
Deplyoment key
Im privaten Repository wird der public key als deplyoment key eingetragen
Environment variable
Im Repository mit der Pipeline wird der private key als environment variable eingetragen
bitbucket-pipelines.yml
image: abogomolov/default:7.0.0
pipelines:
default:
- step:
script:
- mkdir -p ~/.ssh
- ssh-keyscan bitbucket.org >> ~/.ssh/known_hosts
- (umask 077; echo $SSH_KEY | base64 --decode -i > ~/.ssh/id_rsa)
- composer --version
- composer install --prefer-dist --optimize-autoloader --no-interaction
Pipeline lokal testen
docker run -it \
--volume=/PFAD/ZUM/REPO:/localDebugRepo \
--workdir="/localDebugRepo" \
--memory=1g \
--memory-swap=1g \
--entrypoint=/bin/bash IMAGE_AUS_PIPELINE
Build minutes
- 50 Minuten pro Monat (kostenlos)
- 500 Minuten pro Monat (Standard)
- 1000 Minuten pro Monat (Premium)
- 4 GB RAM
- max. 2 Stunden Laufzeit