diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a7b773b..b88623c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,39 +2,89 @@ name: build on: push: - branches: - - 'main' + branches: + - 'main' pull_request: ~ jobs: - test: - name: "Test (PHP ${{ matrix.php-versions }}, Neos ${{ matrix.neos-versions }})" - - strategy: - fail-fast: false - matrix: - php-versions: ['7.4'] - neos-versions: ['7.3'] - include: - - php-versions: '8.1' - neos-versions: '8.3' - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - path: ${{ env.FLOW_FOLDER }} - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-versions }} - extensions: mbstring, xml, json, zlib, iconv, intl, pdo_sqlite - ini-values: date.timezone="Africa/Tunis", opcache.fast_shutdown=0, apc.enable_cli=on - - - name: Set Neos Version - run: composer require neos/neos ^${{ matrix.neos-versions }} --no-progress --no-interaction - - - name: Run Tests - run: composer test + test: + name: "Test (PHP ${{ matrix.php-versions }}, Neos ${{ matrix.neos-versions }})" + + strategy: + fail-fast: false + matrix: + php-versions: [ '7.4' ] + neos-versions: [ '7.3' ] + include: + - php-versions: '8.1' + neos-versions: '8.3' + runs-on: ubuntu-latest + + env: + FLOW_CONTEXT: Testing + NEOS_FOLDER: neos/ + DIST_FOLDER: DistributionPackages/Sitegeist.LostInTranslation + + steps: + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + extensions: mbstring, xml, json, zlib, iconv, intl, pdo_sqlite, mysql, pgsql, redis, memcached, memcache, apcu + ini-values: date.timezone="Africa/Tunis", opcache.fast_shutdown=0, apc.enable_cli=on + + - name: Install Neos Project and other dependencies + run: | + rm -rf ${{ env.NEOS_FOLDER }} + mkdir ${{ env.NEOS_FOLDER }} + composer create --no-scripts --no-install neos/neos-base-distribution "${{ env.NEOS_FOLDER }}" "^${{ matrix.neos-versions }}" + cd "${{ env.NEOS_FOLDER }}" + composer require fakerphp/faker "^1.23.0" --no-install + composer config --no-plugins allow-plugins.neos/composer-plugin true + + - name: Checkout + uses: actions/checkout@v2 + with: + path: ${{ env.NEOS_FOLDER }}/${{ env.DIST_FOLDER }} + + - name: Finish composer setup + run: | + cd "${{ env.NEOS_FOLDER }}" + composer config repositories.lostintranslation '{ "type": "path", "url": "./${{ env.DIST_FOLDER }}", "options": { "symlink": false } }' + composer require sitegeist/lostintranslation "@dev" --no-install + + - name: Cache Composer packages + id: composer-cache + uses: actions/cache@v2 + with: + path: | + ~/.cache/composer + ~/${{ env.NEOS_FOLDER }}/Packages + key: php-${{ matrix.php-versions }}-${{ matrix.dependencies }}${{ hashFiles('**/composer.json') }} + restore-keys: php-${{ matrix.php-versions }}-${{ matrix.dependencies }} + + - name: Install dependencies + run: | + cd ${{ env.NEOS_FOLDER }} + composer ${{ matrix.dependencies == 'locked' && 'install' || 'update' }} --no-progress --no-interaction ${{ matrix.dependencies == 'lowest' && '--prefer-lowest' || '' }} ${{ matrix.composer-arguments }} + + - name: Set Flow Context + run: echo "FLOW_CONTEXT=${{ env.FLOW_CONTEXT }}" >> $GITHUB_ENV + + - name: Run style tests + run: | + phpcs --colors -n --standard=PSR12 ${{ env.NEOS_FOLDER }}/${{ env.DIST_FOLDER }}/Classes + + - name: Run stan tests + run: | + phpstan analyse ${{ env.NEOS_FOLDER }}/${{ env.DIST_FOLDER }}/Classes + + - name: Run unit tests + run: | + cd "${{ env.NEOS_FOLDER }}" + bin/phpunit --colors --stop-on-failure -c DistributionPackages/Sitegeist.LostInTranslation/Tests/UnitTests.xml --testsuite "LostInTranslation" --verbose + + - name: Run functional tests + run: | + cd "${{ env.NEOS_FOLDER }}" + bin/phpunit --colors --stop-on-failure -c DistributionPackages/Sitegeist.LostInTranslation/Tests/FunctionalTests.xml --testsuite "LostInTranslation" --verbose diff --git a/Tests/FunctionalTests.xml b/Tests/FunctionalTests.xml index 23278d9..db1444d 100644 --- a/Tests/FunctionalTests.xml +++ b/Tests/FunctionalTests.xml @@ -3,19 +3,19 @@ xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" beStrictAboutChangesToGlobalState="true" beStrictAboutOutputDuringTests="true" - bootstrap="FunctionalTestBootstrap.php" + bootstrap="../../../Build/BuildEssentials/PhpUnit/FunctionalTestBootstrap.php" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" timeoutForSmallTests="0"> - + Functional - Data/Temporary/Testing/Cache/Code/Flow_Object_Classes/ + ../../../Data/Temporary/Testing/Cache/Code/Flow_Object_Classes/ diff --git a/Tests/UnitTests.xml b/Tests/UnitTests.xml index 3f828f3..fec4255 100644 --- a/Tests/UnitTests.xml +++ b/Tests/UnitTests.xml @@ -3,19 +3,19 @@ xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" beStrictAboutChangesToGlobalState="true" beStrictAboutOutputDuringTests="true" - bootstrap="UnitTestBootstrap.php" + bootstrap="../../../Build/BuildEssentials/PhpUnit/UnitTestBootstrap.php" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" timeoutForSmallTests="0"> - + Unit - ../Classes + ../../../Packages/*/*/Classes