From 0385dd16183304d5cafec5bcd1642d88e32b280e Mon Sep 17 00:00:00 2001 From: Aashwin Mohan <96258159+aashwin-rvvup@users.noreply.github.com> Date: Wed, 8 Feb 2023 18:12:51 +0000 Subject: [PATCH] Introduce a pipeline workflow using Github Actions --- .github/actions/magento-build/action.yml | 40 +++++++++ .github/workflows/build.yaml | 104 +++++++++++++++++++++++ composer.json | 4 +- 3 files changed, 146 insertions(+), 2 deletions(-) create mode 100644 .github/actions/magento-build/action.yml create mode 100644 .github/workflows/build.yaml diff --git a/.github/actions/magento-build/action.yml b/.github/actions/magento-build/action.yml new file mode 100644 index 00000000..ddd6f5b7 --- /dev/null +++ b/.github/actions/magento-build/action.yml @@ -0,0 +1,40 @@ +name: "Build Magento" +description: "Build" +inputs: + php-version: + description: 'PHP Version to use' + required: true + magento-version: + description: 'Magento Version to use' + required: true + composer-version: + description: 'Composer Version to use' + required: false + default: 'v2' +runs: + using: "composite" + steps: + - uses: shivammathur/setup-php@v2 + with: + php-version: ${{ inputs.php-version }} + tools: composer:${{ inputs.composer-version }} + + - if: "${{ inputs.composer-version == 'v2' }}" + run: | + composer config -g allow-plugins.laminas/* true + composer config -g allow-plugins.magento/* true + composer config -g allow-plugins.dealerdirect/phpcodesniffer-composer-installer true + shell: bash + + - run: | + composer config repositories.repo.magento.com composer https://repo.magento.com + COMPOSER_MEMORY_LIMIT=-1 composer create-project --repository-url=https://repo.magento.com/ ${{ inputs.magento-version }} build + cd build + composer require rvvup/sdk + cp ../CI/config.php app/etc/config.php + mkdir -p app/code/Rvvup/Payments + rsync -a --exclude=.gitignore --exclude=*.md --exclude=phpcs.xml --exclude=phpunit.xml --exclude=phpstan.neon --exclude=renovate.json --exclude=composer.json --exclude=.github/ --exclude=build/ --exclude=.git/ ../ app/code/Rvvup/Payments + ls -la app/code/Rvvup/Payments + php -d memory_limit=-1 bin/magento setup:di:compile + php -d memory_limit=-1 bin/magento setup:static-content:deploy en_GB en_US --jobs=10 -f + shell: bash diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 00000000..acd5af68 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,104 @@ +name: Workflow +on: + push: + branches: + - 'main' + pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + php-stan: + name: PHP Stan + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 7.4 + + - name: Configure + run: composer config repositories.repo.magento.com composer https://repo.magento.com && composer config -g http-basic.repo.magento.com ${{ secrets.REPO_PUB_KEY }} ${{ secrets.REPO_SEC_KEY }} + + - name: Install dependencies + run: composer install --no-ansi --no-interaction --no-progress --no-scripts + + - name: Run PHPStan + run: ./vendor/bin/phpstan + + php-cs: + name: PHP CS + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 7.4 + + - name: Configure + run: composer config repositories.repo.magento.com composer https://repo.magento.com && composer config -g http-basic.repo.magento.com ${{ secrets.REPO_PUB_KEY }} ${{ secrets.REPO_SEC_KEY }} + + - name: Install dependencies + run: composer install --no-ansi --no-interaction --no-progress --no-scripts + + - name: Run PHPCS + run: ./vendor/bin/phpcs + + php-unit: + name: PHP Unit + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 7.4 + + - name: Configure + run: composer config repositories.repo.magento.com composer https://repo.magento.com && composer config -g http-basic.repo.magento.com ${{ secrets.REPO_PUB_KEY }} ${{ secrets.REPO_SEC_KEY }} + + - name: Install dependencies + run: composer install --no-ansi --no-interaction --no-progress --no-scripts + + - name: Run PHPUnit + run: ./vendor/bin/phpunit + + build-php74-magento-ce-237: + name: Build (Magento Community 2.3.7-p3 w/ PHP 7.4) + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Configure + run: composer config -g http-basic.repo.magento.com ${{ secrets.REPO_PUB_KEY }} ${{ secrets.REPO_SEC_KEY }} + + - name: Build + uses: ./.github/actions/magento-build + with: + php-version: 7.4 + magento-version: magento/project-community-edition:2.3.7-p3 + + build-php81-magento-ce-245: + name: Build (Magento Community 2.4.5 w/ PHP 8.1) + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Configure + run: composer config -g http-basic.repo.magento.com ${{ secrets.REPO_PUB_KEY }} ${{ secrets.REPO_SEC_KEY }} + + - name: Build + uses: ./.github/actions/magento-build + with: + php-version: 8.1 + magento-version: magento/project-community-edition:2.4.5 diff --git a/composer.json b/composer.json index d6ec835e..a5e0b19f 100644 --- a/composer.json +++ b/composer.json @@ -18,10 +18,10 @@ "require-dev": { "phpunit/phpunit": "^6 || ^7 || ^8 || ^9", "magento/magento-coding-standard": "*", - "dealerdirect/phpcodesniffer-composer-installer": "dev-master", + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", "phpstan/phpstan": "^0.12.2 || ^1.2", "phpstan/extension-installer": "1.2.x-dev", - "bitexpert/phpstan-magento": "dev-master" + "bitexpert/phpstan-magento": "~0.28" }, "autoload": { "files": [