PIPRES-459: Github workflow improvements #1718
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
pull_request: | |
branches: | |
- '**' | |
push: | |
branches: | |
- 'master' | |
jobs: | |
php-cs-fixer: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2.0.0 | |
- name: Run PHP-CS-Fixer | |
uses: prestashopcorp/github-action-php-cs-fixer@master | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2.0.0 | |
- name: Cache composer folder | |
uses: actions/cache@v1 | |
with: | |
path: ~/.composer/cache | |
key: php-composer-cache | |
- run: composer i | |
- name: Pull PrestaShop files | |
run: docker run -tid --rm -v ps-volume:/var/www/html -v $PWD/:/var/www/html/modules/mollie --name temp-ps prestashop/prestashop:1.7.8.1-7.4-apache | |
- name: Run PHPunit | |
run: docker exec temp-ps php /var/www/html/modules/mollie/vendor/bin/phpunit -c /var/www/html/modules/mollie/tests/phpunit.xml | |
# run: docker run --rm --volumes-from temp-ps --workdir=/var/www/html/modules/mollie php ./vendor/bin/phpunit -c ./tests/phpunit.xml -c tests/ | |
phpstan: | |
name: PHPStan | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
presta-versions: [ '1.7.6.8', '1.7.7.0', 'nightly-apache' ] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2.0.0 | |
- name: Cache vendor folder | |
uses: actions/cache@v1 | |
with: | |
path: vendor | |
key: php-${{ hashFiles('composer.lock') }} | |
- name: Cache composer folder | |
uses: actions/cache@v1 | |
with: | |
path: ~/.composer/cache | |
key: php-composer-cache | |
- run: composer update | |
- name: Pull PrestaShop files (Tag ${{ matrix.presta-versions }}) | |
run: docker run -tid --rm -v ps-volume:/var/www/html --name temp-ps prestashop/prestashop:${{ matrix.presta-versions }} | |
- name: Run PHPStan | |
run: docker run --rm --volumes-from temp-ps -v $PWD:/web/module -e _PS_ROOT_DIR_=/var/www/html --workdir=/web/module phpstan/phpstan:0.12 analyse --configuration=/web/module/tests/phpstan/phpstan_base.neon --debug --error-format github | |
prepare-zip: | |
name: Prepare module ZIP artifact | |
runs-on: ubuntu-latest | |
needs: [ test ] | |
env: | |
MODULE_NAME: mollie | |
steps: | |
# todo ask for permissions to add cancel previous workflow action | |
- name: checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Build module ZIP | |
run: | | |
composer install --no-dev --optimize-autoloader --classmap-authoritative | |
composer dump-autoload --no-dev --optimize --classmap-authoritative | |
rm -rf .git .github tests .php-cs-fixer.php Makefile cypress* docker-compose*.yml package.json package-lock.json .docker | |
mkdir ${{ env.MODULE_NAME }} | |
rsync -Rr ./ ./${{ env.MODULE_NAME }} | |
shopt -s extglob | |
rm -r !(${{ env.MODULE_NAME }}) | |
find . -maxdepth 1 -type f -exec rm "{}" \; | |
cd ${{ env.MODULE_NAME }} && rm -rf ${{ env.MODULE_NAME }} | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ env.MODULE_NAME }} | |
path: ./ |