Wie richte ich CI auf der Magento 2-Erweiterung mit der Bitbucket-Pipeline ein?

9

Wie kann ich ein CI-Skript vorbereiten, um die Syntax und Codequalität meines Erweiterungscodes zu überprüfen?

Es ist nicht erforderlich, Unit Test oder Integration Test auszuführen. Ich verwende Bitbucket und möchte Bitbucket Pipelines verwenden .

Rafael Corrêa Gomes
quelle
3
Wenn Sie auch Tests für Bitbucket-Pipelines ausführen möchten, kann dies hilfreich sein: integer-net.com/magento-api-tests-and-continuous-integration
Fabian Schmengler

Antworten:

10

Fügen Sie die Variable AUTH zu den Einstellungen der Pipelines-Variablen hinzu.

Magento 2 Bitbucket Pipelines

Mit Bitbucket können Sie diese Datei mit dem Namen bitbucket-pipelines.yml verwenden

    image: rafaelcgstz/magento2
    pipelines:
      branches:
        master:
          - step:
              name: Composer install
              caches:
                - composer
              artifacts:
                - vendor/**
              script:
                - echo "$AUTH" > auth.json
                - composer install --prefer-dist --optimize-autoloader
          - parallel:
            - step:
                name: PHP CodeSniffer
                caches:
                  - composer
                artifacts:
                  - vendor/**
                script:
                  - php vendor/bin/phpcs --standard=PSR2 Api/ Helper/ Model/ Plugin/ Setup/
            - step:
                name: PHP Mess Detector
                caches:
                  - composer
                artifacts:
                  - vendor/**
                script:
                  - php vendor/bin/phpmd Api/,Helper/,Model/,Plugin/,Setup/ text cleancode,codesize,controversial,design,naming,unusedcode
            - step:
                name: PHP Copy/Paste Detector
                caches:
                  - composer
                artifacts:
                  - vendor/**
                script:
                  - php vendor/bin/phpcpd Api/ Helper/ Model/ Plugin/ Setup/    

Ihre composer.json muss wie folgt aussehen:

{
    "name": "mycompany/modulename",
    "description": "",
    "type": "magento2-module",
    "version": "1.0.0",
    "license": [
        "proprietary"
    ],
    "authors":[
        {
            "name":"Rafael Correa Gomes",
            "email":"[email protected]"
        }
    ],
    "repositories": [
        {
            "type": "composer",
            "url": "https://repo.magento.com/"
        }
    ],
    "require": {
        "php": "~5.6.0|~7.0.0",
        "magento/module-backend": "100.0.*",
        "magento/module-catalog": "100.0.*",
        "magento/module-eav": "100.0.*",
        "magento/module-layered-navigation": "100.0.*",
        "magento/framework": "100.0.*"
    },
    "require-dev": {
        "phpunit/phpunit": "^4.8",
        "phpmd/phpmd": "^2.3",
        "squizlabs/php_codesniffer": "^2.5",
        "sebastian/phpcpd": "^2.0",
        "satooshi/php-coveralls": "^1.0"
    },
    "autoload": {
        "files": [
            "registration.php"
        ],
        "psr-4": {
            "MyCompany\\ModuleName\\": ""
        }
    }
}

Referenz: Beginnen Sie mit Bitbucket Pipelines

Rafael Corrêa Gomes
quelle
Genau das, wonach ich gesucht habe. Vielen Dank! Vielleicht können Sie ein Beispiel hinzufügen, wie Sie den Einheits- / Integrationstest einrichten?
Sv3n
Wenn es Ihr Dockjer-Image ist, können Sie bitte phpstan(v0.8.5) hinzufügen ?
SV3N
@ sv3n hast du herausgefunden, wie der Unit / Integrationstest ausgeführt wird?
Haim
@rafael 1. Warum brauchst du den ersten Schritt? es scheint nichts zu tun, es sei denn, ich vermisse etwas Offensichtliches? 2. Sie geben nur im ersten Schritt Ihren Magento-Benutzernamen und Ihr Passwort ein. Unsere Pipeline schlägt fehl, es sei denn, wir geben die Anmeldeinformationen in jedem Schritt weiter
Haim,
@Haim Die Anmeldeinformationen müssen nicht bei jedem Schritt übergeben werden, da die erforderlichen Anmeldeinformationen an auth.json weitergeleitet werden.
Adnan