Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "composer"
directory: "/"
schedule:
interval: "daily"
98 changes: 87 additions & 11 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,13 @@ jobs:
uses: actions/checkout@v2
- name: Docker pull
run: docker-compose pull php
- name: Docker caching
uses: satackey/action-docker-layer-caching@v0.0.11
continue-on-error: true
- name: Start PHP container
run: docker-compose up --detach --build --no-deps php
- name: Run composer validate
run: docker-compose run --rm --no-deps php composer validate --strict --no-interaction --ansi
run: docker-compose exec -T php composer validate --strict --no-interaction --ansi
run-php-cs-fixer:
name: php-cs-fixer
runs-on: ubuntu-latest
Expand All @@ -19,16 +24,21 @@ jobs:
uses: actions/checkout@v2
- name: Docker pull
run: docker-compose pull php
- name: Docker caching
uses: satackey/action-docker-layer-caching@v0.0.11
continue-on-error: true
- name: Composer caching
uses: actions/cache@v2
with:
path: ./build/.composer
key: ${{ runner.os }}-composer-v1-${{ hashFiles('composer.json') }}
restore-keys: ${{ runner.os }}-composer-v1-
- name: Start PHP container
run: docker-compose up --detach --build --no-deps php
- name: Install dependencies
run: docker-compose run --rm --no-deps php composer --no-scripts install --no-interaction --ansi
run: docker-compose exec -T php composer --no-scripts install --no-interaction --ansi
- name: Run php-cs-fixer
run: docker-compose run --rm --no-deps php bin/php-cs-fixer fix --diff --dry-run --ansi --config=.php-cs-fixer.dist.php
run: docker-compose exec -T php bin/php-cs-fixer fix --diff --dry-run --ansi --config=.php-cs-fixer.dist.php
run-phpunit:
name: phpunit
runs-on: ubuntu-latest
Expand All @@ -37,22 +47,32 @@ jobs:
uses: actions/checkout@v2
- name: Docker pull
run: docker-compose pull
- name: Docker caching
uses: satackey/action-docker-layer-caching@v0.0.11
continue-on-error: true
- name: Composer caching
uses: actions/cache@v2
with:
path: ./build/.composer
key: ${{ runner.os }}-composer-v1-${{ hashFiles('composer.json') }}
restore-keys: ${{ runner.os }}-composer-v1-
- name: Start containers
run: docker-compose up --detach --build
- name: Install dependencies
run: docker-compose run --rm php composer install --no-scripts --no-interaction --ansi
run: docker-compose exec -T php composer install --no-scripts --no-interaction --ansi
- name: Run phpunit
run: docker-compose run --rm php xphp bin/phpunit --color=always --configuration=phpunit.xml.dist
- name: Upload coverage report to codecov.io
uses: codecov/codecov-action@v1
run: docker-compose exec -T php xphp -dxdebug.mode=coverage bin/phpunit --color=always --configuration=phpunit.xml.dist
- name: Upload coverage report to Codecov.io
uses: codecov/codecov-action@v2
with:
files: ./build/.phpunit/clover.xml
fail_ci_if_error: true
verbose: true
# - name: Upload coverage report to GitHub.com
# uses: actions/upload-artifact@v2
# with:
# name: Code Coverage Report
# path: build/.phpunit/code-coverage/*
run-rector:
name: rector
runs-on: ubuntu-latest
Expand All @@ -61,16 +81,21 @@ jobs:
uses: actions/checkout@v2
- name: Docker pull
run: docker-compose pull php
- name: Docker caching
uses: satackey/action-docker-layer-caching@v0.0.11
continue-on-error: true
- name: Composer caching
uses: actions/cache@v2
with:
path: ./build/.composer
key: ${{ runner.os }}-composer-v1-${{ hashFiles('composer.json') }}
restore-keys: ${{ runner.os }}-composer-v1-
- name: Start PHP container
run: docker-compose up --detach --build --no-deps php
- name: Install dependencies
run: docker-compose run --rm --no-deps php composer install --no-interaction --ansi
run: docker-compose exec -T php composer install --no-interaction --ansi
- name: Run rector
run: docker-compose run --rm --no-deps php bin/rector --no-progress-bar --dry-run --ansi
run: docker-compose exec -T php bin/rector --no-progress-bar --dry-run --ansi
run-deptrac:
name: deptrac
runs-on: ubuntu-latest
Expand All @@ -79,13 +104,64 @@ jobs:
uses: actions/checkout@v2
- name: Docker pull
run: docker-compose pull php
- name: Docker caching
uses: satackey/action-docker-layer-caching@v0.0.11
continue-on-error: true
- name: Composer caching
uses: actions/cache@v2
with:
path: ./build/.composer
key: ${{ runner.os }}-composer-v1-${{ hashFiles('composer.json') }}
restore-keys: ${{ runner.os }}-composer-v1-
- name: Start PHP container
run: docker-compose up --detach --build --no-deps php
- name: Install dependencies
run: docker-compose run --rm --no-deps php composer install --no-scripts --no-interaction --ansi
run: docker-compose exec -T php composer install --no-scripts --no-interaction --ansi
- name: Run deptrac
run: docker-compose run --rm --no-deps php bin/deptrac --no-progress --no-interaction --cache-file=./build/.deptrac/.deptrac.cache --ansi
run: docker-compose exec -T php bin/deptrac --no-progress --no-interaction --cache-file=./build/.deptrac/.deptrac.cache --ansi
run-phpstan:
name: phpstan
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Docker pull
run: docker-compose pull php
- name: Docker caching
uses: satackey/action-docker-layer-caching@v0.0.11
continue-on-error: true
- name: Composer caching
uses: actions/cache@v2
with:
path: ./build/.composer
key: ${{ runner.os }}-composer-v1-${{ hashFiles('composer.json') }}
restore-keys: ${{ runner.os }}-composer-v1-
- name: Start PHP container
run: docker-compose up --detach --build --no-deps php
- name: Install dependencies
run: docker-compose exec -T php composer install --no-scripts --no-interaction --ansi
- name: Run phpstan
run: docker-compose exec -T php bin/phpstan analyse -c phpstan.neon
run-psalm:
name: psalm
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Docker pull
run: docker-compose pull php
- name: Docker caching
uses: satackey/action-docker-layer-caching@v0.0.11
continue-on-error: true
- name: Composer caching
uses: actions/cache@v2
with:
path: ./build/.composer
key: ${{ runner.os }}-composer-v1-${{ hashFiles('composer.json') }}
restore-keys: ${{ runner.os }}-composer-v1-
- name: Start PHP container
run: docker-compose up --detach --build --no-deps php
- name: Install dependencies
run: docker-compose exec -T php composer install --no-scripts --no-interaction --ansi
- name: Run psalm
run: docker-compose exec -T php bin/psalm
3 changes: 2 additions & 1 deletion .php-cs-fixer.dist.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
$config = new PhpCsFixer\Config();
$finder = PhpCsFixer\Finder::create();
$finder
// The vendor directory is excluded by default.
->exclude('.github')
->exclude('bin')
->exclude('build')
Expand Down Expand Up @@ -30,6 +31,7 @@
'php_unit_dedicate_assert_internal_type' => true,
'php_unit_mock' => true,
'php_unit_test_case_static_method_calls' => ['call_type' => 'self'],
'no_extra_blank_lines' => true,
'header_comment' => [
'comment_type' => 'PHPDoc',
'location' => 'after_open',
Expand All @@ -46,7 +48,6 @@
],
]
)
//The vendor directory is excluded by default.
->setFinder($finder)
;

Expand Down
24 changes: 19 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,23 @@
Streak
------
![Streak](docs/images/logo.png)

-------------------------------

[![CI](https://github.com/streakphp/streak/actions/workflows/ci.yaml/badge.svg)](https://github.com/streakphp/streak/actions/workflows/ci.yaml)
[![codecov](https://codecov.io/gh/streakphp/streak/branch/master/graph/badge.svg)](https://codecov.io/gh/streakphp/streak)

Running test
------------
Running checks & tests locally
------------------------------

`docker-compose up --detach --build`

`docker-compose exec -T php composer validate --strict --no-interaction --ansi`

`docker-compose exec -T php composer install --no-scripts --no-interaction --ansi`

`docker-compose exec -T php xphp -dxdebug.mode=coverage bin/phpunit --color=always --configuration=phpunit.xml.dist`

`docker-compose exec -T php bin/rector --dry-run --ansi`

`docker-compose exec -T php bin/deptrac --no-interaction --cache-file=./build/.deptrac/.deptrac.cache --ansi`

`docker-compose run --rm php bin/phpunit`
`docker-compose exec -T php bin/php-cs-fixer fix --diff --dry-run --ansi --config=.php-cs-fixer.dist.php`
Empty file added build/.phpstan/.gitkeep
Empty file.
Empty file added build/.psalm/.gitkeep
Empty file.
22 changes: 21 additions & 1 deletion codecov.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,27 @@
codecov:
branch: master
max_report_age: 24
require_ci_to_pass: yes

comment:
layout: "reach, diff, flags, files"
behavior: new
require_changes: false
require_base: true
require_head: true

parsers:
gcov:
branch_detection:
conditional: yes
loop: yes
method: yes
macro: yes

coverage:
precision: 2
round: down
range: "70...100"
range: "90...100"

status:
project:
Expand Down
16 changes: 9 additions & 7 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,21 +27,23 @@
},
"require": {
"php": ">=8.0",
"ext-pdo": "*",
"ext-igbinary": "*",
"ext-redis": "*",
"ext-json": "*",
"ext-pdo": "*",
"ext-redis": "*",
"doctrine/dbal": "^2.13",
"psr/log": "^1.1",
"ramsey/uuid": "^4.1"
},
"require-dev": {
"roave/security-advisories": "dev-latest",
"friendsofphp/php-cs-fixer": "^3.0",
"php-amqplib/rabbitmq-bundle": "^2.6.0",
"phpunit/phpunit": "^9.5.4",
"rector/rector": "^0.10.19",
"qossmic/deptrac-shim": "^0.13.0"
"php-amqplib/rabbitmq-bundle": "^2.6",
"phpstan/phpstan": "^1.5",
"phpunit/phpunit": "^9.5",
"qossmic/deptrac-shim": "^0.13",
"rector/rector": "0.12.18",
"roave/security-advisories": "dev-latest",
"vimeo/psalm": "^4.22"
},
"config": {
"bin-dir": "bin",
Expand Down
5 changes: 3 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
version: '3'
version: '3.7'
services:

php:
image: streakphp/php80-cli:latest
init: true
volumes:
- .:/var/www/project
- ./docker/php/etc/php/8.0/cli/php.ini:/etc/php/8.0/cli/php.ini
working_dir: /var/www/project
entrypoint: tail -f /dev/null # keep container alive for development
depends_on:
- postgres
- redis
environment:
COMPOSER_ALLOW_SUPERUSER: 1
COMPOSER_NO_INTERACTION: 1
COMPOSER_CACHE_DIR: /var/www/project/build/.composer
XDEBUG_MODE: 'develop,debug,coverage'

postgres:
image: postgres:13-alpine
Expand Down
Binary file added docs/images/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading