




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
- 198