Continuous Integration
What actually is
Background: Audi AG Media Center, https://www.audi-mediacenter.com/en/production-232
Develop
Build
Test
Release
Deploy
Continuous Development
Continuous Integration
Continuous Delivery
Continuous Deployment
Version Control System
Continuous Integration
Run tests
Build environment
Manual
Automatic
Code Change
Trigger
Feedback
Maintainer
Developers
Review & Merge
Information about errors
Reliability
Performance
Testability
Predictability
First Steps
Github Actions:
- .github/workflows/ directory
Your own code:
- app/
Tests and it's configuration:
- dev/
.../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
Service Checks
Composer validation
PHP Code Sniffer
ESLint
PHP Mess Detector
PHPStan
LESS / SASS Linting tools
Unit Tests
Integration Tests
API functional tests
Acceptance Tests (Cypress / MFTF)
JS Unit Tests
composer install
bin/magento setup:di:compile
yarn test (or yarn prod)
bin/magento setup:static-content:deploy
The "Release"
Background: Amasty Blog --- https://amasty.com/blog/magento-wallpapers-pack-amasty/
Demo & Discussion