-
Notifications
You must be signed in to change notification settings - Fork 7
89 lines (77 loc) · 4.32 KB
/
Copy pathstatic-tests.yml
File metadata and controls
89 lines (77 loc) · 4.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
name: Magento 2 Static Tests
on: ['push', 'pull_request']
jobs:
phpcs:
name: Magento PHPCS
runs-on: ubuntu-latest
container:
image: yireo/magento2installed:2.4.8-p3
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Cleanup PHP
run: |
test -f /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini && rm -f /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini || true
- name: Run Magento 2 PHPCS Tests
run: |
PHPCS_LEVEL=${{ env.PHPCS_LEVEL }}
test -z "$PHPCS_LEVEL" && PHPCS_LEVEL=$(jq -r '.phpcs_severity // 10' MODULE.json)
test -z "$PHPCS_LEVEL" && PHPCS_LEVEL=10
echo "Testing for PHPCS severity $PHPCS_LEVEL"
cd /tmp/magento
php vendor/bin/phpcs --standard=Magento2 --ignore=Test/,node_modules/ --colors --extensions=php,phtml --severity=$PHPCS_LEVEL ${GITHUB_WORKSPACE}
phpstan:
name: Magento PHPStan
runs-on: ubuntu-latest
container:
image: yireo/magento2installed:2.4.8-p3
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Cleanup PHP
run: |
test -f /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini && rm -f /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini || true
- name: Configure GitLab
run: |
test -n "${{ secrets.GITLAB_TOKEN }}" || exit 0
cd /tmp/magento
composer config gitlab-domains gitlab.yireo.com
composer config --global --auth gitlab-token.gitlab.yireo.com "${{ secrets.GITLAB_TOKEN }}"
composer config repositories.loki-third-party composer https://gitlab.yireo.com/api/v4/group/loki-third-party/-/packages/composer/packages.json
composer config repositories.loki-checkout composer https://gitlab.yireo.com/api/v4/group/loki-checkout/-/packages/composer/packages.json
composer config repositories.loki-checkout-dev composer https://gitlab.yireo.com/api/v4/group/loki-checkout-dev/-/packages/composer/packages.json
- name: Configure Magento Marketplace
run: |
test -n "${{ secrets.MAGENTO_MARKETPLACE_PUBLIC_KEY }}" || exit 0
cd /tmp/magento
composer config --global --auth http-basic.repo.magento.com "${{ secrets.MAGENTO_MARKETPLACE_PUBLIC_KEY }}" "${{ secrets.MAGENTO_MARKETPLACE_PRIVATE_KEY }}"
- name: Configure composer
run: |
cd /tmp/magento
composer config --global --auth github-oauth.github.com "${{ secrets.COMPOSER_GITHUB_TOKEN }}"
test -f $GITHUB_WORKSPACE/.github/workflows/composer-additional.sh && source $GITHUB_WORKSPACE/.github/workflows/composer-additional.sh || true
test -f $GITHUB_WORKSPACE/.github/workflows/composer-${MAGENTO_VERSION}.sh && source $GITHUB_WORKSPACE/.github/workflows/composer-${MAGENTO_VERSION}.sh || true
- name: Setting up module variables
run: |
echo COMPOSER_NAME=`jq '.name' composer.json -r` >> $GITHUB_ENV
echo MAGENTO_MODULE=`jq '.module_name' MODULE.json -r` >> $GITHUB_ENV
- name: Add module source
run: |
COMPOSER_DEV_REQUIREMENTS=`jq -r '.["require-dev"] // {} | to_entries | map("\(.key):\(.value)") | join(" ")' composer.json`
cp -R ${GITHUB_WORKSPACE} /tmp/magento/package-source
cd /tmp/magento
composer config repositories.local-source path package-source/
composer config --no-plugins allow-plugins true
composer remove --dev magento/magento-coding-standard
test -z "$COMPOSER_DEV_REQUIREMENTS" || composer require -n --dev $COMPOSER_DEV_REQUIREMENTS
composer require -n --dev --prefer-source -- phpstan/phpstan:^2.0 bitexpert/phpstan-magento:^0.42 phpstan/extension-installer
composer require -n --prefer-source -- ${COMPOSER_NAME}:@dev
- name: Run Magento 2 PHPStan Tests
run: |
PHPSTAN_LEVEL=$(jq -r '.phpstan_level // 1' ${GITHUB_WORKSPACE}/MODULE.json)
test -z "$PHPSTAN_LEVEL" && PHPSTAN_LEVEL=1
test -f /tmp/magento/phpstan.neon || echo 'parameters:' > /tmp/magento/phpstan.neon
echo "Testing for PHPStan level $PHPSTAN_LEVEL"
cd /tmp/magento
MODULE_PATH=$(realpath vendor/${COMPOSER_NAME})
php -d memory_limit=-1 vendor/bin/phpstan analyse -n --level $PHPSTAN_LEVEL $MODULE_PATH