Skip to content

Commit e4a6246

Browse files
build: base composer.json
build: quality assurance packages style: phpcs config test: base phpunit setup ci: ci & coverage checks
0 parents  commit e4a6246

File tree

13 files changed

+4935
-0
lines changed

13 files changed

+4935
-0
lines changed

.github/workflows/ci.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: CI tests
2+
3+
on: [workflow_dispatch, push, pull_request]
4+
5+
env:
6+
DB_ENDPOINT: 'tcp://127.0.0.1:8529'
7+
8+
jobs:
9+
run:
10+
runs-on: ubuntu-latest
11+
strategy:
12+
matrix:
13+
php: [7.3, 7.4, 8.0]
14+
arangodb: [3.6.0, 3.6, latest]
15+
name: Quality checks PHP ${{ matrix.php }} / ArangoDB ${{ matrix.arangodb }}
16+
17+
services:
18+
arangodb:
19+
image: arangodb:${{ matrix.arangodb }}
20+
ports:
21+
- 8529:8529
22+
env:
23+
ARANGO_NO_AUTH: 1
24+
25+
steps:
26+
- name: Checkout
27+
uses: actions/checkout@v2
28+
29+
- name: Cache dependencies
30+
uses: actions/cache@v1
31+
with:
32+
path: ~/.composer/cache/files
33+
key: dependencies-composer-${{ hashFiles('composer.json') }}-php-${{ matrix.php }}
34+
35+
- name: Setup PHP
36+
uses: shivammathur/setup-php@v2
37+
with:
38+
php-version: ${{ matrix.php }}
39+
extensions: mbstring, intl
40+
ini-values: post_max_size=256M, short_open_tag=On
41+
coverage: none
42+
tools: composer:v2
43+
44+
- name: Install dependencies
45+
run: |
46+
composer update --prefer-dist --no-interaction --no-suggest
47+
48+
- name: Run all QA tests
49+
if: ${{ always() }}
50+
run: ./bin/qa.sh

.github/workflows/coverage.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Test Coverage
2+
3+
on: [workflow_dispatch, push, pull_request]
4+
5+
env:
6+
DB_ENDPOINT: 'tcp://127.0.0.1:8529'
7+
8+
jobs:
9+
run:
10+
runs-on: ubuntu-latest
11+
12+
name: Test coverage
13+
14+
services:
15+
arangodb:
16+
image: arangodb:latest
17+
ports:
18+
- 8529:8529
19+
env:
20+
ARANGO_NO_AUTH: 1
21+
22+
steps:
23+
- name: Checkout
24+
uses: actions/checkout@v2
25+
26+
- name: Setup PHP
27+
uses: shivammathur/setup-php@v2
28+
with:
29+
php-version: 8.0
30+
extensions: mbstring, intl
31+
ini-values: post_max_size=256M, short_open_tag=On
32+
coverage: xdebug
33+
34+
- name: Install dependencies
35+
run: composer install --prefer-dist --no-progress --no-suggest
36+
37+
- name: Test coverage
38+
run: |
39+
vendor/bin/phpunit --coverage-clover clover.xml --whitelist src
40+
wget https://scrutinizer-ci.com/ocular.phar
41+
php ocular.phar code-coverage:upload --format=php-clover clover.xml

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.idea
2+
.vscode
3+
/coverage
4+
/vendor
5+
.env
6+
.env.backup
7+
.phpunit.result.cache

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<p align="center">
2+
3+
ArangoDB PHP client
4+
---------
5+
6+
![Github CI tests](https://github.com/LaravelFreelancerNL/arangodb-php-client/workflows/Continuous%20Integration/badge.svg)
7+
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/LaravelFreelancerNL/arangodb-php-client/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/LaravelFreelancerNL/arangodb-php-client/?branch=next)
8+
[![Code Coverage](https://scrutinizer-ci.com/g/LaravelFreelancerNL/arangodb-php-client/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/LaravelFreelancerNL/arangodb-php-client/?branch=master)
9+
<a href="https://packagist.org/packages/laravel-freelancer-nl/arangodb-php-client"><img src="https://poser.pugx.org/laravel-freelancer-nl/arangodb-php-client/v/unstable" alt="Latest Version"></a>
10+
<a href="https://packagist.org/packages/laravel-freelancer-nl/arangodb-php-client"><img src="https://poser.pugx.org/laravel-freelancer-nl/arangodb-php-client/downloads" alt="Total Downloads"></a>
11+
<a href="https://packagist.org/packages/laravel-freelancer-nl/arangodb-php-client"><img src="https://poser.pugx.org/laravel-freelancer-nl/arangodb-php-client/license" alt="License"></a>
12+
13+
</p>

bin/qa.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/usr/bin/env bash
2+
3+
./vendor/bin/phpcbf
4+
5+
./vendor/bin/phpcs
6+
7+
./vendor/bin/phpmd src/ text phpmd-ruleset.xml
8+
9+
./vendor/bin/phpstan analyse -c phpstan.neon
10+
11+
./vendor/bin/psalm
12+
13+
./vendor/bin/phpunit

composer.json

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"name": "laravel-freelancer-nl/arangodb-php-client",
3+
"description": "Low level PHP client for ArangoDB",
4+
"keywords": [
5+
"arangodb",
6+
"php",
7+
"client"
8+
],
9+
"license": "MIT",
10+
"authors": [
11+
{
12+
"name": "Laravel Freelancer",
13+
"email": "info@laravel-freelancer.nl"
14+
}
15+
],
16+
"minimum-stability": "dev",
17+
"prefer-stable" : true,
18+
"require": {
19+
"php": "^7.4|^8.0",
20+
"ext-json": "*",
21+
"guzzlehttp/guzzle": "^7.2"
22+
},
23+
"require-dev": {
24+
"phpunit/phpunit": "^9.5",
25+
"phpstan/phpstan": "^0.12.82",
26+
"phpmd/phpmd": "^2.9",
27+
"vimeo/psalm": "^4.6",
28+
"squizlabs/php_codesniffer": "^3.5",
29+
"sebastian/phpcpd": "^6.0"
30+
},
31+
"autoload": {
32+
"psr-4": {
33+
"ArangoClient\\": "src/"
34+
}
35+
},
36+
"autoload-dev": {
37+
"psr-4": {
38+
"Tests\\": "tests/"
39+
}
40+
}
41+
}

0 commit comments

Comments
 (0)