diff --git a/.github/workflows/verify-stability.yaml b/.github/workflows/verify-stability.yaml index d68d836..92b9a25 100644 --- a/.github/workflows/verify-stability.yaml +++ b/.github/workflows/verify-stability.yaml @@ -1,58 +1,111 @@ name: Verify stability -run-name: ${{ github.actor }} is verifying stability -on: [ push ] -#on: -# push: -# branches: [ master, develop ] -# pull_request: -# branches: [ master, develop ] + +on: + push: + branches: + - master + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + permissions: - contents: read + contents: read + jobs: - tests: - runs-on: ubuntu-latest - strategy: - matrix: - php-versions: [ '8.0', '8.1', '8.2' ] - steps: - - name: Hello - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-versions }} - extensions: dom, fileinfo, intl-72.1, json, pcre, simplexml - - name: Install locales - run: | - sudo apt-get update \ - && sudo apt-get install -y --no-install-recommends --fix-missing \ - locales - - name: Generate locales - run: | - sudo sed -i "s/^# de_DE/de_DE/g; \ - s/^# es_ES/es_ES/g; \ - s/^# en_GB/en_GB/g; \ - s/^# en_US/en_US/g; \ - s/^# fr_FR/fr_FR/g; \ - s/^# it_IT/it_IT/g; \ - s/^# pl_PL/pl_PL/g; \ - s/^# ru_RU/ru_RU/g;" /etc/locale.gen \ - && sudo locale-gen - - name: Checkout branch - uses: actions/checkout@v3 - - name: Validate composer.json and composer.lock - run: composer validate --strict - - name: Cache Composer packages - id: composer-cache - uses: actions/cache@v3 - with: - path: vendor - key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-php- - - name: Install Composer dependencies - run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --no-plugins --prefer-dist - - name: Run PHPUnit tests - run: vendor/bin/phpunit --no-coverage - - name: Bye 👋 - run: echo "🍏 This job's status is ${{ job.status }}." + validate: + runs-on: ubuntu-latest + strategy: + matrix: + php-versions: [ '8.0', '8.1', '8.2' ] + env: + extensions: dom, fileinfo, intl, json, pcre, simplexml + key: cache-v1 # can be any string, change to clear the extension cache. + steps: + - name: Hello + run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." + - name: Checkout branch + uses: actions/checkout@v4 + - name: Setup cache environment + id: extcache + uses: shivammathur/cache-extensions@v1 + with: + php-version: ${{ matrix.php-versions }} + extensions: ${{ env.extensions }} + key: ${{ env.key }} + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + extensions: ${{ env.extensions }} + - name: Validate Composer (composer.json and composer.lock) + uses: php-actions/composer@v6 + with: + php_version: ${{ matrix.php-versions }} + php_extensions: intl + command: validate --strict --no-check-publish + - name: Cache Composer dependencies + id: composer-cache + uses: actions/cache@v4 + with: + path: /tmp/composer-cache + key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-php- + - name: Install Composer dependencies + uses: php-actions/composer@v6 + with: + php_version: ${{ matrix.php-versions }} + php_extensions: intl + dev: no + phpunit: + runs-on: ubuntu-latest + strategy: + matrix: + php-versions: [ '8.0', '8.1', '8.2' ] + env: + extensions: dom, fileinfo, intl, json, pcre, simplexml + key: cache-v1 # can be any string, change to clear the extension cache. + needs: [ validate ] + if: needs.validate.result == 'success' + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup cache environment + id: extcache + uses: shivammathur/cache-extensions@v1 + with: + php-version: ${{ matrix.php-versions }} + extensions: ${{ env.extensions }} + key: ${{ env.key }} + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + extensions: ${{ env.extensions }} + - name: Install locales + run: | + sudo apt-get update \ + && sudo apt-get install -y --no-install-recommends --fix-missing \ + locales + - name: Generate locales + run: | + sudo sed -i "s/^# de_DE/de_DE/g; \ + s/^# es_ES/es_ES/g; \ + s/^# en_GB/en_GB/g; \ + s/^# en_US/en_US/g; \ + s/^# fr_FR/fr_FR/g; \ + s/^# it_IT/it_IT/g; \ + s/^# pl_PL/pl_PL/g; \ + s/^# ru_RU/ru_RU/g;" /etc/locale.gen \ + && sudo locale-gen + - name: Install Composer dependencies + uses: php-actions/composer@v6 + with: + php_version: ${{ matrix.php-versions }} + php_extensions: intl + - name: Run PHPUnit tests + run: vendor/bin/phpunit --no-coverage + - name: Bye 👋 + run: echo "🍏 This job's status is ${{ job.status }}."