Skip to content

Commit

Permalink
ci: Split qa and test workflow for pipeline (#16)
Browse files Browse the repository at this point in the history
* ci: Split qa and test workflow for pipeline

* fix: set minimum version of pimcore/pimcore to 10.5.1
  • Loading branch information
lukadschaak committed Oct 6, 2023
1 parent 585bebf commit 63eea45
Show file tree
Hide file tree
Showing 5 changed files with 102 additions and 82 deletions.
37 changes: 37 additions & 0 deletions .github/workflows/qa.yaml
@@ -0,0 +1,37 @@
name: Quality Assurance

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:

permissions:
contents: read

jobs:
qa:
name: Quality Checks
runs-on: ubuntu-latest

steps:
- name: Git Checkout
uses: actions/checkout@v4

- name: PHP Setup
uses: shivammathur/setup-php@v2
with:
php-version: 8.1

- name: Validate composer.json
run: composer validate --strict

- name: Install dependencies
uses: ramsey/composer-install@v2

- name: Check CS-Fixer
run: composer cs:check

- name: Check PHPStan
run: composer phpstan
79 changes: 0 additions & 79 deletions .github/workflows/test-and-qa.yaml
@@ -1,79 +0,0 @@
name: test-and-qa

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:
branches: [ "main" ]

permissions:
contents: read

jobs:
qa:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: shivammathur/setup-php@v2
with:
php-version: '8.1'

- 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.json') }}

- name: Install Dependencies
run: composer install --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist

- name: Check CS-Fixer
run: composer cs:check

- name: Check PHPStan
run: composer phpstan

container-test-job:
runs-on: ubuntu-latest
# from https://ldarren.medium.com/number-of-ways-to-setup-database-in-github-actions-2cd48df9faae
services:
db:
image: mariadb:10.10.2
env:
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
MYSQL_DATABASE: 'pimcore'
MYSQL_USER: 'pimcore'
MYSQL_PASSWORD: 'pimcore'
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
ports:
- 3306:3306

steps:
- uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
- uses: actions/checkout@v3

- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v3
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.json') }}

- name: Install Dependencies
run: composer install --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist

- name: Execute tests (Unit and Feature tests) via PHPUnit
run: composer tests
env:
MYSQL_HOST: '127.0.0.1'
MYSQL_SERVER_VERSION: 'mariadb-10.11.4'

58 changes: 58 additions & 0 deletions .github/workflows/tests.yaml
@@ -0,0 +1,58 @@
name: Tests

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:

permissions:
contents: read

jobs:
tests:
name: PHPUnit with PHP ${{ matrix.php-version }} ${{ matrix.dependencies }}
runs-on: ubuntu-latest

# from https://ldarren.medium.com/number-of-ways-to-setup-database-in-github-actions-2cd48df9faae
services:
db:
image: mariadb:10.10.2
env:
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
MYSQL_DATABASE: 'pimcore'
MYSQL_USER: 'pimcore'
MYSQL_PASSWORD: 'pimcore'
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
ports:
- 3306:3306

strategy:
fail-fast: false
matrix:
include:
- php-version: "8.1"
dependencies: "lowest"
- php-version: "8.1"
dependencies: "highest"

steps:
- name: Git Checkout
uses: actions/checkout@v4

- name: PHP Setup
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}

- name: Install dependencies
uses: ramsey/composer-install@v2
with:
dependency-versions: ${{ matrix.dependencies }}

- name: Execute tests
run: composer tests
env:
MYSQL_HOST: '127.0.0.1'
MYSQL_SERVER_VERSION: 'mariadb-10.11.4'
2 changes: 1 addition & 1 deletion compose.yaml
Expand Up @@ -16,7 +16,7 @@ services:
timeout: 10s

php:
image: pimcore/pimcore:php8.1-v1.3
image: pimcore/pimcore:php8.1-latest
volumes:
- ./:/var/www/html/
environment:
Expand Down
8 changes: 6 additions & 2 deletions composer.json
Expand Up @@ -18,8 +18,8 @@
}
},
"require": {
"php": "^8.0",
"pimcore/pimcore": "^10.0",
"php": "~8.1.0",
"pimcore/pimcore": "^10.5.1",
"symfony/console": "^5.4 || ^6.0",
"symfony/finder": "^5.4 || ^6.0",
"symfony/framework-bundle": "^5.0 || ^6.0",
Expand All @@ -37,6 +37,10 @@
"symfony/filesystem": "^5.4",
"teamneusta/pimcore-testing-framework": "^0.11.0"
},
"conflict": {
"presta/sitemap-bundle": "<3.1",
"symfony/proxy-manager-bridge": "<5.4"
},
"autoload": {
"psr-4": {
"Neusta\\Pimcore\\TranslationMigrationBundle\\": "src/"
Expand Down

0 comments on commit 63eea45

Please sign in to comment.