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