Continuous Integration
Is not a rocket science
Are we there yet?
Continuous Integration
What actually is
Background: Audi AG Media Center, https://www.audi-mediacenter.com/en/production-232
What it is not?
Develop
Build
Test
Release
Deploy
Continuous Development
Continuous Integration
Continuous Delivery
Continuous Deployment
How it works?
Version Control System
Continuous Integration
Run tests
Build environment
Manual
Automatic
Code Change
Trigger
Feedback
Maintainer
Developers
Review & Merge
Information about errors
Why bother?
Reliability
Performance
Testability
Predictability
First Steps
Code Repository
Github Actions:
- .github/workflows/ directory
Your own code:
- app/
Tests and it's configuration:
- dev/
Basic Setup
.../pull-request.yml
At least in theory...
name: Pull Request
on: pull_request
jobs:
code_style:
name: Code Style
runs-on: ubuntu-latest
steps:
- name: Clone repository to build
uses: actions/checkout@v2
with:
fetch-depth: 1
- run: composer install --no-interaction --dev
env: {COMPOSER_AUTH: "${{ secrets.COMPOSER_AUTH }}"}
- uses: mediotype/phpcs-action@v2
with:
enable_warnings: true
only_changed_files: true
phpcs_bin_path: ${{ github.workspace }}/vendor/bin/phpcs --standard=phpcs.xml
First Success!
Pull Requests
Service Checks
Code Quality
Composer validation
PHP Code Sniffer
ESLint
PHP Mess Detector
PHPStan
LESS / SASS Linting tools
Tests Execution
Unit Tests
Integration Tests
API functional tests
Acceptance Tests (Cypress / MFTF)
JS Unit Tests
Code Reliability
composer install
bin/magento setup:di:compile
yarn test (or yarn prod)
bin/magento setup:static-content:deploy
The "Release"
Well-known way
The Challenge
Extended Way
Background: Amasty Blog --- https://amasty.com/blog/magento-wallpapers-pack-amasty/
Demo & Discussion
Otter's Continues Integration
By Łukasz Bajsarowicz
Otter's Continues Integration
- 83