Skip to content

Commit ab5bc3b

Browse files
committed
Refactor GitHub Actions workflow to separate linting and Symfony installation jobs
1 parent a878716 commit ab5bc3b

1 file changed

Lines changed: 61 additions & 1 deletion

File tree

.github/workflows/php.yml

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
branches: [ main ]
88

99
jobs:
10-
build:
10+
lint_and_test:
1111
name: Value objects (PHP ${{ matrix.php-versions }})
1212
runs-on: ubuntu-latest
1313
strategy:
@@ -41,3 +41,63 @@ jobs:
4141
run: composer run-script test
4242
- name: Run infection testing
4343
run: composer run-script infection
44+
45+
symfony_installation:
46+
name: Test installation to Symfony (PHP ${{ matrix.php-versions }}, Symfony ${{ matrix.symfony-versions }})
47+
runs-on: ubuntu-latest
48+
strategy:
49+
fail-fast: false
50+
matrix:
51+
php-versions: ['8.3', '8.4']
52+
symfony-versions: ['6.4', '7.1', '7.2']
53+
env:
54+
SYMFONY_FOLDER: symfony_app
55+
steps:
56+
- name: Checkout
57+
uses: actions/checkout@v2
58+
- name: Setup PHP with composer and extensions
59+
uses: shivammathur/setup-php@v2
60+
with:
61+
php-version: ${{ matrix.php-versions }}
62+
extensions: mbstring, dom, fileinfo, mysql, curl
63+
- name: Cache Symfony app
64+
id: symfony-app-cache
65+
uses: actions/cache@v3
66+
with:
67+
path: symfony_app_tmp
68+
key: ${{ runner.os }}-symfony-${{ matrix.symfony-versions }}-${{ matrix.php-versions }}
69+
- name: Install Symfony app
70+
if: steps.symfony-app-cache.outputs.cache-hit != 'true'
71+
run: |
72+
composer create-project symfony/skeleton:"${{ matrix.symfony-versions }}.*" symfony_app_tmp
73+
cd symfony_app_tmp
74+
composer require webapp
75+
- name: Prepare fresh Symfony app
76+
run: |
77+
cp -r symfony_app_tmp $SYMFONY_FOLDER
78+
- name: Select branch to install module
79+
id: extract_branch
80+
run: |
81+
if [[ "${GITHUB_EVENT_NAME}" == "push" ]]; then
82+
echo "::set-output name=branch::$(echo ${GITHUB_REF##*/})"
83+
elif [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
84+
echo "::set-output name=branch::$(echo $GITHUB_HEAD_REF)"
85+
else
86+
echo "::set-output name=branch::INVALID_EVENT_BRANCH_UNKNOWN"
87+
fi
88+
- name: Set database settings
89+
run: |
90+
echo "APP_ENV=dev" > $SYMFONY_FOLDER/.env
91+
echo "APP_SECRET=test" >> $SYMFONY_FOLDER/.env
92+
echo "DATABASE_URL=mysql://test:test@127.0.0.1:3306/test?serverVersion=5.7" >> $SYMFONY_FOLDER/.env
93+
echo "MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0" >> $SYMFONY_FOLDER/.env
94+
- name: Install module
95+
run: |
96+
cd $SYMFONY_FOLDER
97+
composer req "marvin255/value-object-bundle:dev-${{ steps.extract_branch.outputs.branch }}" -W
98+
- name: Check that module is auto enabled
99+
run: |
100+
cat $SYMFONY_FOLDER/config/bundles.php | grep "Marvin255RandomStringGeneratorBundle"
101+
- name: Check that Doctrine works fine
102+
run: |
103+
cat $SYMFONY_FOLDER/bin/console doctrine:mapping:info --no-interaction

0 commit comments

Comments
 (0)