Skip to content

Commit

Permalink
Separate validation and PHPUnit tests in GitHub Actions
Browse files Browse the repository at this point in the history
  • Loading branch information
meritoo committed Oct 25, 2024
1 parent fbbea09 commit 4c6a1d0
Showing 1 changed file with 108 additions and 55 deletions.
163 changes: 108 additions & 55 deletions .github/workflows/verify-stability.yaml
Original file line number Diff line number Diff line change
@@ -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 }}."

0 comments on commit 4c6a1d0

Please sign in to comment.