77 branches : [ main ]
88
99jobs :
10- build :
10+ lint_and_test :
1111 name : Value objects (PHP ${{ matrix.php-versions }})
1212 runs-on : ubuntu-latest
1313 strategy :
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