Piotr Woszczyk @ 2019
Praktyka częstego integrowania nowego kodu z dotychczasowym. Każdorazowo poprzedzona weryfikacją automatyczną.
version: 2.1
commands:
preparation:
description: "Enviroment preparation"
steps:
- run: apt-get update && apt-get install -y ssh rsync git unzip
- run: mkdir ~/.ssh
- run: ssh-keyscan github.com >> ~/.ssh/known_hosts
- run: curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
- run: composer config --global --auth github-oauth.github.com $GITHUBTOKEN
jobs:
build-job:
docker:
- image: php:7.1-fpm
working_directory: ~
steps:
- checkout
- preparation
- restore_cache:
keys:
- composer
- run: composer install --no-progress --ignore-platform-reqs --no-scripts
- run: vendor/bin/php-cs-fixer fix -q --rules=@PSR2 --dry-run src
- run: vendor/bin/phpmd src/ --exclude src/AdminBundle/Entity,src/MachineBundle/Entity --suffixes php text cleancode,codesize,controversial,design,unusedcode
- save_cache:
key: composer
paths:
- ~/.composer/cache/files
workflows:
version: 2
build-deploy:
jobs:
- build-jobPraktyka częstego i automatycznego publikowania aplikacji. Ma za zadanie przyśpieszenie procesu wprowadzania zmian aby mogły pojawiać się mniejszymi partiami. Ważną składową jest zachowanie aplikacji w ciągłej gotowości do publikacji.
Continuous Deployment jest rozszerzeniem procesu Continuous Delivery o automatyczną publikację nowej wersji.
version: 2.1
commands:
preparation:
description: "Enviroment preparation"
steps:
- run: apt-get update && apt-get install -y ssh rsync git unzip
- run: mkdir ~/.ssh
- run: ssh-keyscan github.com >> ~/.ssh/known_hosts
- run: curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
- run: composer config --global --auth github-oauth.github.com $GITHUBTOKEN
jobs:
deploy-job:
docker:
- image: php:7.1-fpm
working_directory: ~
steps:
- checkout
- preparation
- run: composer install --no-progress --ignore-platform-reqs --no-scripts
- run: ssh-keyscan makolab.pl >> ~/.ssh/known_hosts
- run: rsync --delete --compress --archive --exclude 'app/config/parameters.yml' --exclude 'var/*' --exclude 'web/public/*' * user@makolab.pl:/usr/share/nginx/html/
- run: ssh user@makolab.pl 'bash -v -s' < .circleci/deploy.sh
workflows:
version: 2
build-deploy:
jobs:
- deploy-job:
filters:
branches:
only: masterhttps://martinfowler.com/articles/continuousIntegration.html